我使用这个逻辑,每个内部链接包含' 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它应该有效。
答案 0 :(得分:1)
当你想加载其他网址使用以下方法时,它将在默认浏览器中打开
splitext