我正在尝试在Android应用中实现深层链接。
当我在Chrome浏览器等Android浏览器上点击自定义网址(xxxx:// repost?id = 12)的深层链接时,我的应用就会打开并运行良好。
问题是,在应用程序中,有一个webView小部件,我也希望在那里进行深层链接工作。
目前,它显示Can't connect to the server
错误。
提前致谢。
答案 0 :(得分:16)
这是android web视图的问题,因为这会将所有内容视为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;
}
}
在上面的代码中,将AppConstants.DEEP_LINK_PREFIX替换为您的网址方案,例如
android-app://你的包
希望这会有所帮助!!
答案 1 :(得分:4)
@pranav的答案是完美的,但如果没有应用程序来处理意图,可能会导致崩溃。 @ georgianbenetatos的防止这种帮助的解决方案
sed