2017-08-05 5 views
0

私は自分のサイトのwebviewアプリを持っています。 webView ...のみいくつかのすべて!私のアプリには私のサイトのリンクはありません!ブラウザ内のwebView内のいくつかのリンクを開きます(一部ではありません)

たとえば! URLでこのタラでのSMSトーストのURLが含まれています。

setContentView(R.layout.activity_main); 

    web = (WebView) findViewById(R.id.web); 

    web.getSettings().setSupportZoom(true); 
    web.getSettings().setJavaScriptEnabled(true); 
    web.getSettings().setSupportZoom(true); 

    web.getSettings().setLoadWithOverviewMode(true); 
    CookieManager.getInstance().setAcceptCookie(true); 

    web.loadUrl(url); 
     String weburl = web.getUrl(); 
    if(weburl.contains("sms")){ 
     Context context = getApplicationContext(); 
     CharSequence text =weburl; 
     int duration = Toast.LENGTH_SHORT; 


     Toast toast = Toast.makeText(context, text, duration); 
     toast.show(); 

    } 

タンクあなた

答えて

0

あなたはWebViewClientshouldOverrideUrlLoading()メソッドをオーバーライドする必要があります。 (公式DOCから採取)

例:

private class MyWebViewClient extends WebViewClient { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     if (Uri.parse(url).getHost().equals("www.example.com")) { 
      // This is my web site, so do not override; let my WebView load the page 
      return false; 
     } 
     // Otherwise, the link is not for a page on my site, so launch another Activity that handles URLs 
     Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
     startActivity(intent); 
     return true; 
    } 
} 

は次にWebViewこの新しいWebViewClientのインスタンスを作成する:

WebView myWebView = (WebView) findViewById(R.id.webview); 
myWebView.setWebViewClient(new MyWebViewClient()); 

DOC:https://developer.android.com/guide/webapps/webview.html#HandlingNavigation

関連する問題