java - 当用户单击它时如何从 WebView 内的链接中提供 url
问题描述
我有一个 Web 视图。它包含页面,由 Jsoup 过滤。
WebView cntContent;
WebView cntComments;
WebSettings webSettingsContent;
WebSettings webSettingsComments;
cntContent = findViewById(R.id.cntContent);
cntComments = findViewById(R.id.cntComments);
webSettingsContent = cntContent.getSettings();
webSettingsComments = cntComments.getSettings();
webSettingsContent.setDefaultFontSize(16);
webSettingsComments.setDefaultFontSize(16);
cntContent.setBackgroundColor(Color.TRANSPARENT);
cntComments.setBackgroundColor(Color.TRANSPARENT);
webSettingsContent.setAppCacheEnabled(true);
webSettingsComments.setAppCacheEnabled(true);
cntContent.loadDataWithBaseURL(contentUrl, contentFinal, "text/html", "utf-8", null);
cntComments.loadDataWithBaseURL(contentUrl, commentsFinal, "text/html", "utf-8", null);
cntContent.setClickable(true);
页面包含链接。当用户单击它并将 url 放入 String 时,如何提供链接的 url?
解决方案
您应该做的是为 WebView 提供您自己的 WebViewClient。子类化 WebViewClient 并使用 WebView 方法 setWebViewClient 来设置它。然后在 WebViewClient 中覆盖“shouldOverrideUrlLoading”方法并使用链接做任何你喜欢的事情。
WebView wv = new WebView();
wv.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
String url = request.getUrl().toString();
return false;
}
});
推荐阅读
- python - 测试副本集上带有 ReadPreference Secondary 的事务上的 MongoDB 错误
- python - 将表从数据库导出到 mdf 文件
- r - 在R中使用enrichGO对TAIR进行富集分析时不映射任何内容
- vue.js - 使用 Nuxt 添加多个加载组件
- javascript - 在 Vue 应用程序中粘贴大型内容时,Quill Editor 会略微向上滚动
- database-design - 数据仓库设计——创建无主键的维度表
- c# - C#裁剪图像梯形/多边形
- flutter - 连接两个 document.data()['field'] 字段
- flutter - 在没有 super.dispose() 的情况下覆盖 dispose() 是否有效?
- google-apps-script - 如何使用新工作表作为输入源来总结将它们排序为日期的值