我正在尝试在android应用程序中实现深度链接。
当我在Chrome等Android浏览器上点击自定义url (xxxx://repost?id=12)的深度链接时,我的应用程序打开并运行良好。
问题是,在应用程序中,有一个webView小部件,我也想在那里做深度链接工作。
目前,它显示的是Can't connect to the server
错误。
提前谢谢。
发布于 2015-09-22 18:32:47
这就是android网页视图的问题所在,因为它将所有内容都视为URL,但其他浏览器,如手机上的chrome浏览器会拦截该方案,操作系统将执行其余操作以打开相应的应用程序。要实现这一点,您需要修改您的web视图shouldOverrideUrlLoading函数,如下所示:
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
LogUtils.info(TAG, "shouldOverrideUrlLoading: " + url);
Intent intent;
if (url.contains(AppConstants.DEEP_LINK_PREFIX)) {
intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
startActivity(intent);
return true;
}
}
在上面的代码中,用你的url方案替换AppConstants.DEEP_LINK_PREFIX。
android-app://您的软件包
希望这能有所帮助!!
发布于 2018-02-09 17:57:21
@pranav的答案是完美的,但如果没有应用程序来处理意图,可能会导致崩溃。@georgianbenetatos的解决方案有助于防止这种情况
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
} else {
Toast.makeText(this, R.string.no_apps_to_handle_intent, Toast.LENGTH_SHORT).show();
}
https://stackoverflow.com/questions/25672330
复制相似问题