我对 Android 应用程序开发非常陌生,但我有一个包含应用程序的网站 - 该应用程序只是使用 webview 来加载网站。到目前为止非常简单。
因为桌面用户将使用网站本身,并且他们希望分享他们在网站上遇到的链接,所以移动用户可能会,比如说,去 Facebook,看到他们想要访问的链接,它会简单地在浏览器,而不是在应用程序中加载该 URL,这显然会分散/混淆用户(该网站有一个登录系统,对于初学者来说,他们需要从 android 浏览器再次登录)。
有没有办法在 Android 中监听到网站的链接并使用应用程序的 webview 打开这些链接,而不是在浏览器中?我知道 Facebook 有打开应用程序的 fb:// 链接。
不过,问题更加复杂。实际上,为了防止内部链接启动外部 android 浏览器,我有一个过滤器,效果如下:
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.contains("root_address_of_site/page/")) {
return false;
} else {
view.getContext().startActivity(
new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
}
return true;
}
在应用程序中,您可以通过基本 url 分享到 Facebook、Twitter 和日历的链接,因此到 Twitter 的链接可能是https://twitter.com/intent/tweet?original_referer=root_address_of_site/page/&text=page_name&tw_p=tweetbutton&url= root_address_of_site/page/。当然,这只会被过滤器捕获,因为意图 URL“包含”“root_address_of_site/page/”。我想知道是否有办法更改过滤器,使其“以”开头,而不是“url.contains”?这意味着 twitter/facebook 链接仍将在外部打开,但指向网站本身的链接仍将在应用程序内打开,无论如何。
我希望这是有道理的——很难描述。感谢您对此的任何帮助!