2014-04-30 48 views
1

我正在使用Apache Cordova的IBM Worklight中編寫一些代碼。在加載特定URL後關閉Cordova InAppBrowser

我想打開InAppBrowser,而不是讓用戶在完成時單擊「完成」,我希望它在加載特定URL時自動關閉。這可能嗎?

場景:
我基本上將用戶引導到twitter.com(比使用OAuth過程更簡單),只是有InAppBrowser瀏覽器內的用戶使用Twitter,但一旦用戶已經登錄(網址成爲新聞feed url)我想直接將用戶重定向到發佈的URL,並且一旦發佈,就返回到應用程序,如果可能的話。


編輯(2014年5月1日)
依照下列答案的建議,我可以,但是隻要將用戶引導到帖子頁面,因爲它完成加載它重定向到主頁,而實際上卻無法發送推文。有沒有辦法來解決這個問題?此外,InAppBrowser從不退出。

此外,下面的代碼只適用於用戶已經登錄。有沒有辦法說,如果用戶沒有登錄去主頁,如果他們去的帖子頁?

// open InAppBrowser w/out the location bar 
var ref = window.open('http://mobile.twitter.com/compose/tweet', '_blank', 'location=no'); 

// attach listener to loadstart 
ref.addEventListener('loadstart', function(event) { 
    var urlSuccessPage = "http://mobile.twitter.com"; 
    if (event.url == urlSuccessPage) { 
    ref.close(); 
    } 
}); 

回答

2

如果堅持關閉,當用戶導航別的地方InAppBrowser,你也許可以試試這個:Phonegap build - Open external page in InAppBrowser or childbrowser with no toolbar and close it?

// open InAppBrowser w/out the location bar 
var ref = window.open('http://myloginapp.com', '_blank', 'location=no'); 

// attach listener to loadstart 
ref.addEventListener('loadstart', function(event) { 
    var urlSuccessPage = "http://myloginapp/success/"; 
    if (event.url == urlSuccessPage) { 
    ref.close();  
    } 
}); 

編輯:我建議也回顧InAppBrowser整個文檔和它對事件的使用。 http://docs.phonegap.com/en/3.1.0/cordova_inappbrowser_inappbrowser.md.html

也許loadstart不是正確的事件使用。

也就是說,InAppBrowser的行爲就像一個普通的網頁;我不認爲你可以在其中進行很多'操作',或者說可以做很多'操作'。

+0

該請求很有意義,想象一下您希望用戶通過的嚮導,並希望他在導航最後一頁時返回應用程序。我使用類似的方法使用Facebook或Twitter分享對話框。 –

+0

好的。那麼我認爲使用InAppBrowser事件的第一個解決方案應該根據他的代碼進行一些修改。 –

+0

阿努比斯 - 你可以驗證這個代碼可以工作嗎?我正在嘗試去做與你提到的完全相同的事情,但是對於Twitter! – user2471699