java - 如何在不使用新 url 的情况下在 WebView 上读取点击链接的 url?
问题描述
我有一个Webiew
. 我想阅读点击链接的网址,但Webiew
不能去这个网址。WebView 必须保持在同一页面。
示例:用户单击“ https://stackoverflow.com/questions ”按钮,应用阅读此链接。但是 WebView 必须仍然停留在“ https://stackoverflow.com/ ”而不刷新。我可以阅读点击链接的 URL,但我无法停止 WebView,它会转到新的 url。
解决方案
正如@Sudheesh建议的那样,您应该扩展WebView
提供shouldOverrideUrlLoading的新实现。与该 webview 中特定链接的 Web View onclick 事件相同。
我认为您应该避免调用super.shouldOverrideUrlLoading(view, url);
以防止默认行为。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView wv = (WebView) findViewById(R.id.myWebView);
wv.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(isURLMatching(url)) {
openNextActivity();
return true;
}
//return super.shouldOverrideUrlLoading(view, url);
return false;
}
});
}
protected boolean isURLMatching(String url) {
// some logic to match the URL would be safe to have here
return true;
}
protected void openNextActivity() {
Intent intent = new Intent(this, MyNextActivity.class);
startActivity(intent);
}
推荐阅读
- ios - 停止渲染后如何清除 RTCEAGLVideoView?
- r - 如何修复 r 中匹配元素的返回
- httrack - 无法使用 HTTrack 登录网站
- python - 来自雅虎财经的网页抓取信息
- c++ - 在 omnet++ IDE 中找不到 -lC:\SQLAPI\lib\sqlapi.lib
- css - Bootstrap 响应式嵌入在 flexbox 中不起作用 - 没有计算高度 - 为什么?
- node.js - 如何在异议模型的 $afterUpdate 挂钩中获取整个更新的条目?
- c# - 少数机器的 ServiceController 类的 Windows 服务启动问题
- python - 从 MATLAB 转换为 python 时,矩阵乘法会呈现不同的结果
- foreach - 如何在 Neo4J Cypher 中将 UNWIND 查询转换为 FOREACH?