如何在默认浏览器和WebView Android中的所有内部链接中打开extarnal url?

时间:2015-05-12 08:16:02

标签: android webview

我使用这个逻辑,每个内部链接包含' myurl'字符串,因此它应该在默认浏览器中的WebView和其他外部链接中打开。

package com.package.webviewapp;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;


public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


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

        String url = "http://myurl.com";
        webView.getSettings().setJavaScriptEnabled(true);
        webView.loadUrl(url);

    }
}
class MyWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if(url.contains("myurl")){ // Could be cleverer and use a regex
            view.loadUrl(url); // Stay within this webview and load url
            return true;
        } else {
            return super.shouldOverrideUrlLoading(view, url); // Leave webview and use browser
        }
    }
}

但是它打开了WebView中的所有链接。正如这里提到的Open link from Android Webview in normal browser as popup它应该有效。

1 个答案:

答案 0 :(得分:1)

当你想加载其他网址使用以下方法时,它将在默认浏览器中打开

splitext