Android|WebView 禁止长按,限制非白名单域名的跳转层级
💡
原文中文,约1600字,阅读约需4分钟。
📝
内容提要
用户反馈称在隐私协议界面上可以跳转到百度搜索页面,希望所有操作保持在APP内。解决思路是禁用WebView的长按选择文字功能,允许白名单域名页面任意加载,非白名单域名页面通过白名单域名页面跳转,不再响应超链接。经测试达到了想要的效果。
🎯
关键要点
-
用户反馈在隐私协议界面可以跳转到百度搜索页面,希望所有操作保持在APP内。
-
现状分析显示WebView的长按选择文字功能禁用对功能无影响,隐私协议中的链接需限制跳转。
-
解决思路是禁用WebView的长按选择文字功能,允许白名单域名页面任意加载,非白名单域名页面通过白名单域名页面跳转。
-
代码实现中设置了白名单域名,屏蔽长按弹出的菜单,并限制非白名单域名的链接跳转。
-
经过测试,解决方案达到了预期效果。
❓
延伸问答
如何解决WebView中长按选择文字的问题?
通过禁用WebView的长按选择文字功能,避免用户跳转到外部网站。
为什么要限制非白名单域名的跳转?
为了确保所有操作保持在APP内,避免用户通过隐私协议跳转到外部网站。
白名单域名的作用是什么?
白名单域名允许页面任意加载,确保用户在APP内的操作不被外部链接干扰。
如何实现对非白名单域名的限制?
通过代码设置白名单,并在WebViewClient中拦截非白名单域名的链接请求。
用户对隐私协议界面的反馈是什么?
用户希望所有操作保持在APP内,避免跳转到百度搜索等外部网站。
测试结果如何?
经过测试,禁用长按选择文字功能和限制跳转的方案达到了预期效果。
➡️