2013-07-13 43 views
2

我有這個命令,讓用戶在點擊webview內的鏈接後仍然在應用內。但我失去了它,似乎無法找到它是什麼。Android WebView - 如何在用戶點擊WebView鏈接時將用戶留在應用內?

任何人都可以提醒我,那個命令是什麼? 謝謝!

這是我的代碼:

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 

    WebView webview = new WebView(this); 
    webview.getSettings().setAppCacheEnabled(false); 
    webview.getSettings().setJavaScriptEnabled(true); 
    webview.setInitialScale(1); 
    webview.getSettings().setPluginState(PluginState.ON); 

    webview.setWebViewClient(new WebViewClient() { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      view.loadUrl(url); 
      return true; 
     } 
    }); 

    WebSettings webSettings = webview.getSettings(); 
    webSettings.setJavaScriptEnabled(true); 
    webSettings.setBuiltInZoomControls(true); 
    webSettings.setAllowContentAccess(true); 
    webSettings.setEnableSmoothTransition(true); 
    webSettings.setLoadsImagesAutomatically(true); 
    webSettings.setLoadWithOverviewMode(true); 
    webSettings.setSupportZoom(true); 
    webSettings.setUseWideViewPort(true); 

    setContentView(webview); 
    webview.loadUrl("http://www.stitcher.com/podcast/entrepreneuronfirecom/entrepreneur-on-fire-tim-ferriss-other-incredible-entrepreneurs");   

回答

10

要web視圖中捕獲所有點擊,您需要與shouldOverrideUrlLoading集設置自定義WebViewClient到true

mWebView.setWebViewClient(new WebViewClient() { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl(url); 
     return true; 
    } 
}); 

沒有這樣做,它會打開在瀏覽器中。

http://developer.android.com/reference/android/webkit/WebViewClient.html#shouldOverrideUrlLoading(android.webkit.WebView, java.lang.String)

給主機應用程序有機會接管控制,當一個新的URL是關於在當前的WebView加載。如果未提供WebViewClient,則默認情況下,WebView將要求活動管理器爲URL選擇適當的處理程序。

+0

謝謝 - 試試吧。另外,出於某種原因,我認爲還有一條解決方案,不是嗎? – Genadinik

+0

就這樣我們在同一頁面上,我將用我最新的代碼更新我的原始問題。 – Genadinik

+0

我剛剛用我現在的代碼更新了我的原始問題。你可不可以對它做一番評價,以確保我不會在某個地方偏離軌道。我在Android上使用WebView有點新。謝謝! – Genadinik

相關問題