是否存在我可以添加到shouldOverrideUrlLoading的条件,该条件会在将其他链接指向移动浏览器时保留应用中的某些链接?
我最初的想法是这样的:
if (url.contains("myurl.com")){
//open the url in the app
}
else{
//open the url in the mobile browser
}
由于我的理解有限,这是我能想到的最好的主意。我对其他想法持开放态度,并且非常感谢任何语法帮助。
答案 0 :(得分:1)
你的初步想法是正确的
事实上,我相信shouldOverrideUrlLoading()
是API的一部分。
打开app =
中的网址super.shouldOverrideUrlLoading();
mYourWebViewInstance.loadUrl(url);
return true;
在移动浏览器中打开网址=
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url ));
startActivity(browserIntent);
return true;
此代码将直接启动可以处理此数据类型的应用程序,在这种情况下,您的设备上安装了任何浏览器应用程序,或者如果您有更多,则会让您选择一个浏览器来显示您的网址安装了一个Web浏览器,但没有一个设置为默认值(始终打开...)
根据documentation返回true
表示您自己处理了该网址,并且该活动已被使用。
还有issue of inconsistency across android platforms and certain firmwares - 根据我的经验,我已经看到在某些设备中没有覆盖此回调默认情况下会返回false(将触发外部Web浏览器的意图选择器),并且某些设备返回true默认情况下。
这就是为什么你总是必须覆盖这个回调,以确保你确切知道你的应用在所有设备上的行为。
那么,它是否回答了你的问题?