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

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

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

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

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

提前致谢。

这是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替换为您的url方案,例如。

android-app://你的包

希望这可以帮助!!

@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(); }