首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何停止打开android webview中除主链接以外的弹出窗口或第三方链接

在Android WebView中停止打开除主链接以外的弹出窗口或第三方链接,可以通过以下步骤实现:

  1. 设置WebView的WebViewClient:WebViewClient是WebView的一个内部类,用于处理各种通知和请求事件。通过重写WebViewClient的shouldOverrideUrlLoading方法,可以拦截WebView中的链接跳转事件。
代码语言:txt
复制
webView.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        // 在此处处理链接跳转事件
        if (url.equals(mainUrl)) {
            // 主链接,允许加载
            return false;
        } else {
            // 非主链接,拦截加载
            return true;
        }
    }
});
  1. 拦截非主链接的加载:在shouldOverrideUrlLoading方法中,判断传入的url是否为主链接。如果是主链接,返回false,允许WebView加载;如果是非主链接,返回true,拦截WebView的加载。
  2. 处理弹出窗口事件:如果WebView中存在弹出窗口事件(如点击链接弹出新窗口),可以通过重写WebView的WebChromeClient的onCreateWindow方法来处理。
代码语言:txt
复制
webView.setWebChromeClient(new WebChromeClient() {
    @Override
    public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {
        // 在此处处理弹出窗口事件
        WebView newWebView = new WebView(view.getContext());
        WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
        transport.setWebView(newWebView);
        resultMsg.sendToTarget();
        return true;
    }
});
  1. 关闭弹出窗口:在onCreateWindow方法中,创建一个新的WebView,并通过WebView.WebViewTransport将其传递给resultMsg,然后返回true,表示拦截弹出窗口的加载。

综上所述,通过设置WebViewClient的shouldOverrideUrlLoading方法拦截非主链接的加载,以及设置WebChromeClient的onCreateWindow方法处理弹出窗口事件,可以停止打开Android WebView中除主链接以外的弹出窗口或第三方链接。

腾讯云相关产品推荐:

  • 云服务器(CVM):提供弹性计算能力,满足各类业务需求。产品介绍
  • 云数据库 MySQL 版(CDB):稳定可靠的云数据库服务,支持高可用、备份恢复等功能。产品介绍
  • 腾讯云CDN:内容分发网络,加速静态资源访问,提升用户体验。产品介绍
  • 腾讯云安全组:网络安全防护服务,提供访问控制、入侵检测等功能。产品介绍
  • 腾讯云人工智能:提供丰富的人工智能服务,包括图像识别、语音识别、自然语言处理等。产品介绍
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

自动化-Appium-微信公众号(Python版)

公众号页面识别不到webview元素,例如显示android.webkit.WebView,那么要用什么工具查找定位呢?...点击页面链接链接有多个,要挨个点击查看哪个是),弹出窗口,显示当前页面的Webview元素信息(由于国内网络问题,第一次页面加载可能需要FANQIANG)。...6、获取当前公众号进程 微信打开公众号(例如:国美管家,点击进入要测试webview页面),查看当前运行在哪个进程。...开始测试运行在任何模拟运行,设备插入 desired_caps['noReset'] = True # 执行完整重置 # Android 停止应用程序,清除应用程序数据并在测试后卸载apk # IOS...打开PCChrome浏览器,输入访问地址chrome://inspect/ 在udid为MYV0215825000026真机里,打开要操作微信公众号webview页面,此时在PCChrome浏览器可以看到访问链接

2.3K31

自动化-Appium-微信小程序(Python版)

点击页面链接链接很多,要挨个点击查看哪个是),弹出窗口,显示当前页面的Webview元素信息(由于国内网络问题,第一次页面加载可能需要FANQIANG)。...6、获取当前小程序进程 微信有很多进程,每一个小程序都运行在不同进程。 微信打开小程序(例如:京东购物),查看当前运行在哪个进程。...开始测试运行在任何模拟运行,设备插入 desired_caps['noReset'] = True # 执行完整重置 # Android 停止应用程序,清除应用程序数据并在测试后卸载apk # IOS...那如何知道WebView与驱动是否匹配呢?...打开PCChrome浏览器,输入访问地址chrome://inspect/ 在udid为MYV0215825000026真机里,打开要操作微信小程序webview页面,此时在PCChrome浏览器可以看到访问链接

4.4K20

Android混合开发教程之WebView使用方法总结

作用 显示和渲染Web页面 直接使用html文件(网络上本地assets)作布局 可和JavaScript交互调用 WebView控件功能强大,除了具有一般View属性和设置外,还可以对url请求...链接WebView内部跳转 webView.setWebViewClient(new WebViewClient() { public boolean shouldOverrideUrlLoading...() //触发创建一个新窗口   onJsAlert //触发弹出一个对话框   onJsPrompt //触发弹出一个提示   onJsConfirm//触发弹出确认提示   onProgressChanged...(true); //支持通过JS打开窗口 webSettings.setLoadsImagesAutomatically(true); //支持自动加载图片 11.)知识扩展WebViewJSBridge...(); super.onMeasure(widthMeasureSpec, heightMeasureSpec); } 干我们这行,啥时候懈怠,就意味着长进停止,长进停止就意味着被淘汰,只能往前冲

1.3K20

自动化-Appium-微信小程序(Java版)

5、接下来开始使用查找元素定位工具来获取元素属性值等信息,微信应用程序原生例如可以使用Android SDKuiautomatorviewer工具查找元素,小程序页面识别不到webview元素...点击页面链接链接很多,要挨个点击查看哪个是),弹出窗口,显示当前页面的Webview元素信息(由于国内网络问题,第一次页面加载可能需要FANQIANG)。...6、获取当前小程序进程 微信有很多进程,每一个小程序都运行在不同进程。 微信打开小程序(例如:京东购物),查看当前运行在哪个进程。...那如何知道WebView与驱动是否匹配呢?...打开PCChrome浏览器,输入访问地址chrome://inspect/ 在udid为MYV0215825000026真机里,打开要操作微信小程序webview页面,此时在PCChrome浏览器可以看到访问链接

2.4K20

自动化-Appium-元素定位工具

点击页面的inspect链接弹出窗口,显示当前页面的Webview元素信息(由于国内网络问题,第一次页面加载可能需要FANQIANG)。元素定位方法同Selenium WebDriver一致。...因此需要使用借助第三方工具来强制开启任何AppAndroid webview debug模式,使之可以使用Chrome Inspect。而这个工具就是Xposed。...3、在模拟器真机上打开需要查看webviewapp,跳转到webview。...点击帮助中心页面的链接,会弹出窗口,显示帮助中心页面的html源码信息,则可以获取相应Webview元素信息。...点击页面的inspect链接弹出窗口,显示当前页面的Webview元素信息(由于国内网络问题,第一次页面加载可能需要FANQIANG)。元素定位方法同Selenium WebDriver一致。

4.3K10

自动化-Appium-第一个Demo-混合(Java版)

点击页面链接弹出窗口,显示当前页面的Webview元素信息(由于国内网络问题,第一次页面加载可能需要FANQIANG)。元素定位方法同Selenium WebDriver一致。...点击页面链接弹出窗口,显示当前页面的Webview元素信息(由于国内网络问题,第一次页面加载可能需要FANQIANG)。元素定位方法同Selenium WebDriver一致。...:5555模拟器里,打开要操作应用程序webview页面,本章示例为打开帮帮应用-帮助中心页面,此时在PCChrome浏览器可以看到帮助中心页访问链接,如图所示,模拟器里WebView版本号为...点击苹果首页链接,会弹出窗口,显示苹果首页html源码信息,则可以获取相应Webview元素信息。...点击帮助中心页面的链接,会弹出窗口,显示帮助中心页面的html源码信息,则可以获取相应Webview元素信息。

2.5K30

自动化-Appium-​第一个Demo-混合(Python版)

点击页面链接弹出窗口,显示当前页面的Webview元素信息(由于国内网络问题,第一次页面加载可能需要FANQIANG)。元素定位方法同Selenium WebDriver一致。...点击页面链接弹出窗口,显示当前页面的Webview元素信息(由于国内网络问题,第一次页面加载可能需要FANQIANG)。元素定位方法同Selenium WebDriver一致。...:5555模拟器里,打开要操作应用程序webview页面,本章示例为打开帮帮应用-帮助中心页面,此时在PCChrome浏览器可以看到帮助中心页访问链接,如图所示,模拟器里WebView版本号为...点击苹果首页链接,会弹出窗口,显示苹果首页html源码信息,则可以获取相应Webview元素信息。...点击帮助中心页面的链接,会弹出窗口,显示帮助中心页面的html源码信息,则可以获取相应Webview元素信息。

2.5K20

自动化-Appium-​第一个Demo-Web(Python版)

点击页面链接弹出窗口,显示当前页面的Webview元素信息(由于国内网络问题,第一次页面加载可能需要FANQIANG)。元素定位方法同Selenium WebDriver一致。...点击页面链接弹出窗口,显示当前页面的Webview元素信息(由于国内网络问题,第一次页面加载可能需要FANQIANG)。元素定位方法同Selenium WebDriver一致。...:5555模拟器里,打开要操作浏览器,本章示例为Android默认浏览器,之后打开百度首页,此时在PCChrome浏览器可以看到百度首页访问链接,如图所示,模拟器里默认浏览器版本号为44.0.2403.119...点击百度首页链接,会弹出窗口,显示百度首页html源码信息,则可以获取相应Webview元素信息。...点击百度首页链接,会弹出窗口,显示百度首页html源码信息,则可以获取相应Webview元素信息。

2.4K10

自动化-Appium-第一个Demo-Web(Java版)

点击页面链接弹出窗口,显示当前页面的Webview元素信息(由于国内网络问题,第一次页面加载可能需要FANQIANG)。元素定位方法同Selenium WebDriver一致。...点击页面链接弹出窗口,显示当前页面的Webview元素信息(由于国内网络问题,第一次页面加载可能需要FANQIANG)。元素定位方法同Selenium WebDriver一致。...:5555模拟器里,打开要操作浏览器,本章示例为Android默认浏览器,之后打开百度首页,此时在PCChrome浏览器可以看到百度首页访问链接,如图所示,模拟器里默认浏览器版本号为44.0.2403.119...点击百度首页链接,会弹出窗口,显示百度首页html源码信息,则可以获取相应Webview元素信息。...点击百度首页链接,会弹出窗口,显示百度首页html源码信息,则可以获取相应Webview元素信息。

2.2K10

Android webview加载https链接错误无响应解决

最近做无线WiFi时候,在最后认证成功时候会弹出一个广告页,于是用webview去加载了一下,结果没反应,打印url出来看了一下,发现是https格式,在使用WebView加载https资源文件时...() .setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); } }); 在Android5.0WebView方面做了些修改,如果你系统...测试: 1、调用高德地图没法显示,前端工程师用了http……那么改为https 2、部分功能没实现,因为后台没有加证书…..那么,全部改回http 补充知识:Android WebView加载网页链接遇到那些坑...下面是列出几个问题 在webview跳转别的页面无响应 在webview中下载文件无响应 部分网址链接无法显示 部分网址打开自动跳转到浏览器 1.在webview跳转别的页面无响应 修改之前代码如下...4.部分网址打开自动跳转到浏览器 接到上面所讲,打开部分网址跳转到浏览器了,如何不让他跳转呢,返回true可以禁止跳转,但部分网址在webview无法打开,接下来,不给它直接返回truefalse了

4.4K10

androidWebView附件问题解决

webview好处我们其实都清楚:1.可以直接显示和渲染web页面 2.直接显示网页webview可以直接用html文件(网络上本地assets)作布局 3.可以和JavaScript交互调用 但是同时...android webview只是一个对浏览器内核封装,本身不具备打开word,excel,ppt,pdf文件功能,即使可以打开,也必须借助第三方专用插件或者poi库。...没有头绪时候,我用qq做了一个测试,把我们html链接发到我手机qq上 ,然后在qq上点击html上附件,发现是先下载,然后提示用手机上相关软件打开,比如 三方浏览器(UC浏览器,QQ浏览器)还有...后来我们也就没做在线解析直接打开,也是做像qq一样先下载然后依赖第三方软件打开。我觉得也比较合理(1.这种功能没有必要花那么多时间做那么复杂  2.遵循主流软件处理方式)。...* 如果是文档文件 ,就是调用系统浏览器下载,如果安装了多个浏览器,会弹出选择界面;如果是图片就是直接打开效果*/ private String mUrl = "http://shouji.baidu.com

1.1K20

【H5】209-可能这些是你想要H5软键盘兼容方案

作者最近一段时间在做 H5 聊天项目,过程踩过一个大坑:输入框获取焦点,软键盘弹起,要求输入框吸附(顶)在输入法框上。需求很明确,看似很简单,其实不然。...IOS 软键盘收起表现 触发软键盘上“收起”按钮键盘或者输入框以外页面区域时,输入框失去焦点,软键盘收起。 Android 软键盘收起表现 触发输入框以外区域时,输入框失去焦点,软键盘收起。...微信官方已给出解决方案,只需在软键盘收起后,将页面(webview)滚回到窗口最底部位置(clientHeight位置)。 console.log('IOS 键盘收起啦!')...,确实大部分 Android 浏览器是没问题,但是测试在 IOS 上,UC 浏览器配合原生输入法和第三方输入法(比如搜狗输入法),输入框都会被完全挡住;QQ 浏览器微信浏览器,配合第三方输入法,输入框会被遮住一半...而对于第三方输入法,猜测本身是由于输入法面板弹起后高度计算有误,导致 webview 初始滚动定位有误。其实这两点都是 webview 滚动不到位造成

3.9K12

混合开发之解决H5页面出现广告问题

Android原生与H5通信   而在这种方式使用过程笔者碰到了一个问题,偶然性会出现广告,各种各样广告。并且不是必然触发。   通过查询各种资料(其实就是百度)。...,其效果就是对特定网络不能反应访问是假网址。   ...错误”数据,并以弹出窗口形式在使用者界面展示宣传性广告或者直接显示某网站内容。   ...通过查看Android原生WebView拦截日志,发现了广告页面的地址是会被拦截到,而我们自己H5页面放在自己服务器上,IP和端口号是固定的当前使用服务器ip和端口,广告页ip和端口肯定和我们是不一致...笔者拦截了url,将广告url拦截并且不允许它继续执行打开,至此,从用户角度算是完全解决了广告问题。

2.2K10

可能这些是你想要H5软键盘兼容方案

IOS 软键盘收起表现 触发软键盘上“收起”按钮键盘或者输入框以外页面区域时,输入框失去焦点,软键盘收起。 Android 软键盘收起表现 触发输入框以外区域时,输入框失去焦点,软键盘收起。...兼容 IOS12 + V6.7.4+ 如果你在用 IOS12 和 V6.7.4+版本微信浏览器打开上面表单输入 demo ,就会惊奇发现键盘收起后,原本被滚动顶起页面并没有回到底部位置,导致原来键盘弹起位置...微信官方已给出解决方案,只需在软键盘收起后,将页面(webview)滚回到窗口最底部位置(clientHeight位置)。...,确实大部分 Android 浏览器是没问题,但是测试在 IOS 上,UC 浏览器配合原生输入法和第三方输入法(比如搜狗输入法),输入框都会被完全挡住;QQ 浏览器微信浏览器,配合第三方输入法,输入框会被遮住一半...而对于第三方输入法,猜测本身是由于输入法面板弹起后高度计算有误,导致 webview 初始滚动定位有误。其实这两点都是 webview 滚动不到位造成

8K20

Android WebView使用方法总结

Android WebView使用方法 Android app打开H5页一般要实现如下需求: 1、打开指定url网页; 2、点击链接可以跳转到下一页,并更新标题; 3、按back键左箭头可以返回上一页...; 4、当webview显示是第一级url时, 按返回键左箭头关闭当前界面; 5、WebView如何传值给android, 例如使用H5登录成功后返回姓名、token等等字段。...8、避免WebView内存泄漏。 不多说, 看下面代码如何实现上述功能。 参考布局: <?xml version="1.0" encoding="utf-8"?...--在代码添加webView防止内存泄露隐患-- <LinearLayout android:id="@+id/neterror_tip" android:layout_width...webSettings.setAllowFileAccess(true); //设置支持缩放 webSettings.setBuiltInZoomControls(false); //允许js弹出窗口

91220

App安全测试—Android安全测试规范

如果存在,记录漏洞,停止测试。 预期结果:文件未存放用户系统敏感信息 整改建议:如果一定要在客户端存放系统敏感数据,建议加密后再存储。...文件权限为:文件-组用户-其他用户 预期结果: 目录权限为drwxrwx--x,允许多一个执行位x 文件权限最后三位应为空(类似-rw-rw----),即应用自己以外任何人无法读写; 整改建议 避免使用...查看检索文件是否存在用户信息、业务数据、服务系统信息其他敏感信息。如果存在,记录漏洞,停止测试。 预期结果:客户端数据库文件不存在敏感数据。...WebView组件安全测试 WebViewAndroid系统提供能显示Web页面的系统控件,例如混合类型AppH5界面就是使用了WebView组件。...用户数据保存到目录databases/webview.db。 如果手机被root就可以获取明文保存密码,造成用户个人敏感数据泄露。 执行步骤 使用反编译工具打开应用,反编译出应用源码。

4.2K42

Android WebView打开网页一片空白

问题描述: 网页链接是Https链接 网页链接在电脑Chrome浏览器打开正常 网页链接在手机Chrome浏览器打开正常 网页链接在IOSApp上打开正常 网页链接Android App打开一片空白...,没有任何提示 问题原因 试了很多方法,最后发现是Https证书有问题,由于网页链接是客户提供,不知道证书是如何生成,导致不被Android系统信任 问题发现之旅 网页链接在手机和电脑都能打开,...debug网页加载过程也没有发现问题 但是后来用UC浏览器打开以后发现加载过程中会弹出提示: ?...出错提示 根据弹出提示知道很可能是证书问题,于是重新开始debug项目中WebView 一般我们在初始化一个WebView时都有几个固定步骤,其中最重要一步就是设置WebViewClient...现如今基本上所有的网页链接都是Https了,我们以后在开发过程还是要注意这个问题,在onReceivedSslError中提前做好处理。

1.3K20

安装最新版本Oracle公司虚拟机软件 VirtualBox + 安装虚拟机 Windows XP 系统 + 安装 Oracle 11g 软件 + 出现 ERROR: ORA-12541: TNS

选择 “使用已有的虚拟硬盘”,并点击红框标识 按钮 ,在弹出对话框,找到下载好 WinXP.vdi,点击 “打开” ,点击 “创建” ? ? ? ?...4.4、我们在启动虚拟机之前,最好先改下 WinXP 设置,在窗口中,选中刚创建虚拟机,点击 “设置” ,在 “设置” 对话框,选择 “系统” --> “硬件加速”,去掉 “启动VT-x/AMD-V...答:是不是是Win10防火墙问题,我们发现真是Win10防火墙问题!   (PS: 由于Win10没有安装第三方杀软,所以我不想直接关闭防火墙)。我电脑防火墙是打开,如下图所示: ?   ...在虚拟机上,打开命令行窗口,重启一下监听:lsnrctl stop、lsnrctl start ?   ...8、删除HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INIMicrosoft ODBC for Oracle注册表键以外全部含有Oracle键。

1.6K10
领券