私はWebView
自分のページで使用していて、ローカルファイルassets
を使用してメインHTMLページの外部Webサイト(ローカルではない)に表示してWebView
いますが、ユーザーデバイスのデフォルトブラウザでそのリンクだけを開きたいです
これは「onCreate」メソッドの私のコードです
WebView v;
v=(WebView) rootView.findViewById(R.id.webView1);
v.getSettings().setJavaScriptEnabled(true);
WebViewClient vc= new WebViewClient();
v.setWebViewClient(vc);
v.loadUrl("file:///android_asset/home.html");
アプリケーションを実行すると、内部リンクは正常に機能しますが、外部リンク「www.apple.com」が Web ビューに表示されます
同じ質問を検索し、この解決策を見つけましたが、それでも外部リンクは WebView で開きます
WebView webView = (WebView) rootView.findViewById(R.id.webView1);
webView.setWebViewClient(new MyWebViewClient());
String url = "file:///android_asset/home.html";
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(url);
とクラス
class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(url.contains("http")){ // Could be cleverer and use a regex
return super.shouldOverrideUrlLoading(view, url); // Leave webview and use browser
} else {
view.loadUrl(url); // Stay within this webview and load url
return true;
}
}
}