2017-09-19 120 views
1

我創建了一個帶有WebView屬性的Android應用程序,一切都很好,但唯一的問題是,當我單擊該WebView內的任何鏈接時,它會自動進入默認Web瀏覽器。但我想只在我的應用程序Web視圖中打開鏈接。在這裏我的代碼:Android WebView在默認瀏覽器中打開鏈接 - 在應用程序中打開鏈接

mWebView = (WebView) findViewById(R.id.activity_main_webview); 
    WebSettings webSettings = mWebView.getSettings(); 
    webSettings.setJavaScriptEnabled(true); 
    mWebView.loadUrl("http://plan.regenbogen-gesamtschule.de/vertretung/schueler/subst_001.htm"); 
    mWebView.setWebViewClient(new MyAppWebViewClient(){ 
     @Override 
     public void onPageFinished(WebView view, String url) { 
      //hide loading image 
      findViewById(R.id.progressBar1).setVisibility(View.GONE); 
      //show webview 
      findViewById(R.id.activity_main_webview).setVisibility(View.VISIBLE); 
     }}); 

回答

1

如果覆蓋在你的MyAppWebViewClientshouldOverrideUrlLoading(...)並返回false,你的WebView會自動嘗試加載網址。該文檔聲明以下內容:

返回:如果主機應用程序想要離開當前WebView並處理url本身,則返回false,否則返回false。

請參閱shouldOverrideUrlLoading(...)文檔。

mWebView.setWebViewClient(new MyAppWebViewClient(){ 

    @Override 
    boolean shouldOverrideUrlLoading (WebView view, String url) { 
     return false; 
    } 

    @Override 
    public void onPageFinished(WebView view, String url) { 
     //hide loading image 
     findViewById(R.id.progressBar1).setVisibility(View.GONE); 
     //show webview 
     findViewById(R.id.activity_main_webview).setVisibility(View.VISIBLE); 
    }}); 
+0

其實我是新來的Android可以請你解釋一下,你是什麼意思,我沒弄清楚。 謝謝。 –

+0

我編輯了答案以顯示你需要添加的內容。 – Jon

+0

非常感謝您的幫助。 –

相關問題