如何在Android应用程序的WebView中启用深层链接?

时间:2014-09-04 18:11:44

标签: android android-webview

我正在尝试在Android应用中实现深层链接。

当我在Chrome浏览器等Android浏览器上点击自定义网址(xxxx:// repost?id = 12)的深层链接时,我的应用就会打开并运行良好。

问题是,在应用程序中,有一个webView小部件,我也希望在那里进行深层链接工作。

目前,它显示Can't connect to the server错误。

提前致谢。

2 个答案:

答案 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
相关问题