2017-02-15 77 views
0

我的關注是在Android WebView中的瀏覽器和內部URL中加載外部URL。在計算器但由於谷歌的新的更新如何打開瀏覽器中的外部URL和Webview中的內部URL

「」試圖尋遍」 shouldOverrideUrlLoading(WebView view, String url) 這種方法在API級別被廢棄24 使用shouldOverrideUrlLoading(WebView, WebResourceRequest)來代替。‘’

試着做下面的代碼,但它從來沒有工作

@Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     if (Uri.parse(url).getHost().equals("http://google.com")) { 
      return true; 
     }else{ 
      Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
      startActivity(intent); 
      return false; 
     } 
    } 

收到這個錯誤: 錯誤:(26,5)誤差:方法不覆蓋或從超類型實現一種方法

此外,正如我GOOGLE了一下,並知道,該方法也被棄用,並沒有更多的使用。

有人可以幫我解析外部URL的瀏覽器成功。

預先感謝您。

版本將會在下面

import android.content.Intent; 
import android.net.Uri; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.webkit.WebResourceRequest; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

import java.net.URL; 

public class rut extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_rut); 

     WebView webView = (WebView) findViewById(R.id.webView); 
     webView.loadUrl("http://google.com/r.html"); 
     webView.getSettings().setJavaScriptEnabled(true); 
     webView.setWebViewClient(new WebViewClient()); 
    } 

    webview.setWebViewClient(new WebViewClient(){ 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      if(url.contains("http://google.com/")) { //check for internal url 
       return super.shouldOverrideUrlLoading(view, url); 
      }else{ 
       Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
       intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
       startActivity(intent); 
       return true; 
      } 
     }); 


} 

回答

3

試試這個。

webview.setWebViewClient(new WebViewClient(){ 
    @Override 
       public boolean shouldOverrideUrlLoading(WebView view, String url) { 
        if(url.contains("internal_url")) { //check for internal url 
         return super.shouldOverrideUrlLoading(view, url); 
        }else{ 
         Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
         intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
         startActivity(intent); 
         return true; 
        } 
       }}); 
+0

得到這個錯誤http://prntscr.com/e8zw4f –

+0

並且還錯誤:(26,5)誤差:方法不覆蓋或實現從編輯的超類型 –

+0

答案的方法。檢查 –

相關問題