2012-05-16 36 views
0

我在Android活動使用Webview(比如活動B)這樣如何讓控制回到應用程序(Webview之外)?

webview = new WebView(this); 
webview.setWebViewClient(new WebViewClient()); 
setContentView(webview); 
webview.loadUrl("http://mywebpage"); 

所以,web視圖中打開在活動網頁,以及預期的功能是,用戶可以瀏覽不同的網頁以下webview中的鏈接。 (該網站是移動應用程序,或換句話說,在我的控制之下)。

現在,用戶完成檢出網頁後,如何讓用戶進行其他活動? (如果它有助於活動 - 活動A - 與調用包含webview的活動B的位置相同)。

因此,我可以從webview決定完成當前活動(B),以便用戶返回活動A?或者如果可能的話,根據網頁上的某些事件直接啓動另一個可能是活動A或其他活動C的活動?

或者我需要在活動B的Webview之外提供一個按鈕,從中我可以處理該流程?

還是有更好的方法?

回答

1

我過去所做的是在webview活動的webview下面提供一個關閉按鈕(在您的案例活動B中)。如果您使用startActivityForResult從活動A調用活動B,那麼一旦活動B關閉(更具體而言,一旦活動B關閉,onActivityResult在活動A中被調用),控件就會返回到活動A.

與上面相結合,如果你有一個定義瀏覽過程從網頁A開始到第X頁,你可以嘗試其他的事情是,你可以達到第X頁時自動關閉活動B。擴展WebViewClient,收聽onPageFinished事件以獲取當前頁面URL並在當前URL匹配終止URL時關閉該活動。

+0

哇,真的很喜歡使用onPageFinished的第二種方法,就像一個魅力...出於可用性的原因,我想避免關閉按鈕的方法。非常感謝! :) –

1

有幾種方法可以處理你描述的內容。首先,如果用戶點擊後退按鈕,該活動應該完成並返回到活動A,而無需致電完成。現在

,如果要創建/在他們所看到的網頁的控制,你可以開始從網上另外一個活動創造的意圖過濾器。例如:

<intent-filter> 
    <category android:name="android.intent.category.DEFAULT"/> 
    <category android:name="android.intent.category.BROWSABLE"/> 
    <data android:scheme="http" 
      android:host="www.yourwebsite.com" 
      android:path="your/path/here"/> 
    <action android:name="android.intent.action.ACTION_VIEW"/> 
</intent-filter> 

如果您應用意圖過濾器在你的清單中的活動,並且你把你的網站鏈接的url http://www.yourwebsite.com/your/path/here,支持了意圖過濾器的活動應該被啓動。

+0

意圖過濾器的方法看起來很整潔! :)我upvoted的答案,但在另一個答案的方法更適合我的用例,因此接受一個。謝謝 :) –

相關問題