java - 如何仅将网站页面发送到默认浏览器并在 webview 中加载其余网站页面?
问题描述
我正在android studio中开发webview,我需要加载一个网站,但我也不想在webview中加载该网站的某些特定页面。假设我https://stackoverflow.com/questions/
在我的 webview 中加载,但我想https://stackoverflow.com/questions/ask
在用户想要访问此 url 时将此 url 发送到默认浏览器。
为此,我已经在我的代码中尝试过此代码,webViewClient()
但它不起作用!
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(url.contains("https://stackoverflow.com/questions/ask")){
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(i);
return true;
}
return false;
}
解决方案
如评论中所述:如果问题是,则此方法永远不会触发我怀疑该 URL 的格式与您预期的不同。
尝试像这样记录传递的 URL:
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.i("WebView", "shouldOverrideUrlLoading called with URL=" + url);
if(url.contains("questions/ask")){
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(i);
return true;
}
return false;
}
我怀疑前面没有 a https
but a http
,或者完全省略了,或者只是你所在的路径的相对路径(即只是“问题/询问”)
推荐阅读
- selenium - 无法创建新会话,因为未找到需要 HttpClient、InputStream 和 long 的“createSession”或无法访问
- sql - 如何屏蔽(混淆)SQL Server 2012 中的某些列?
- javascript - React Router goBack 函数必须执行两次
- visual-studio-code - VS代码如何将未使用的变量显示为红色
- c# - Asp.Net Core 2.1 返回的带有 Json 的 C# SimpleJson
- .net - Net Core Web API 起订量
- php - 如何在php中添加指定字符串长度的空格
- mysql - 只保留最后 N 条记录的触发器
- excel - 如何按计划通过SSRS将多个查询导出到一个带有工作表的excel文件?
- mysql - 关注用户和标签系统