我使用webView的网站做了一个简单的应用程序。这是一个洪流网站。我在该网站发布磁链接。我想要的是当我只点击磁铁链接时,所有洪流应用程序就像bit-torrent会自动捕捉地址。此外,所有其他外部网站链接都将在Chrome等外部浏览器中打开。需要帮助,使webView与外部链接处理,如“磁铁”
我按照一些在线教程,甚至从这里(计算器),但他们都老了,而且shouldOverrideUrlLoading
,但谷歌表示,这种方法是在API级别24
这里https://developer.android.com/guide/webapps/webview.html 我按照谷歌使用过时此代码(修改为与我的网站匹配),但它不起作用。请有人帮我解决这个问题。
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;
}
}
这是我的Java的主要活动代码now.now在该网站中的WebView开放的每一个环节,但我不希望和磁铁链接它显示了这样的快照。
public class MainActivity extends Activity {
private WebView myWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myWebView = (WebView) findViewById(R.id.webView);
// Configure related browser settings
myWebView.getSettings().setLoadsImagesAutomatically(true);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
// Configure the client to use when opening URLs
myWebView.setWebViewClient(new MyBrowser());
// Load the initial URL
myWebView.loadUrl("https://example.com");
}
@Override
public void onBackPressed() {
if(myWebView.canGoBack()) {
myWebView.goBack();
} else {
super.onBackPressed();
}
}
private class MyBrowser extends WebViewClient {
}
}
hlw谢谢你的代码赞赏,但我有一些问题与code.sorry说,即时通讯非常新的。 '公布尔isAppInstalled(字符串的packageName){ 尝试{ activity.getPackageManager()getApplicationInfo( 的packageName,0);' 此活动显示,如果以红色 –
“不能解析符号活动”,在这里“( url.startsWith。(“magnet”))' here startsWith显示“无法解析符号startsWith”红色。 –
活动是您当前活动的实例,您也可以直接在活动代码中使用getPackageManager()。只需清理代码,因为第二个注释的问题非常奇怪且意外。 –