解决Google Play审核中的WebViewClient.onReceivedSslError问题
Google Play应用市场提交应用审核,出现因WebViewClient.onReceivedSslError
问题导致拒绝通过。
Google Paly给出的详情地址:support.google.com/faqs/answer…
处理起来其实也相对简单,主要是针对用到WebViewClient
对象重写onReceivedSslError()
方法。
如:
@Override
public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) {
AlertDialog.Builder builder = new AlertDialog.Builder(view.getContext());
builder.setMessage("SSL认证失败,是否继续访问?");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
handler.proceed();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
handler.cancel();
}
});
AlertDialog dialog = builder.create();
dialog.show();
// 上报SslError信息到服务端,以便排查具体问题
CornLog.e(view, handler, error);
...
}
复制代码
项目主工程通过直接搜索WebViewClient
,对应重写onReceivedSslError()
方法,相对都很简单,主要问题在,针对项目中直接引入的jar
包和通过gradle dependencies
引入的外部库,需要统一核查。
通过gradle dependencies
引入的外部库,通常是以aar
形式存在,项目构建过程中,最终都会将aar
中的有效部分,如jar
文件,拷贝到当前项目构建目录,参与整体构建过程。
于是,构建完成后,可以通过命令直接查找项目目录下的jar
文件,将其中的WebViewClient
相关类都找到,并逐一排查,对于涉及到的自己的独立jar
文件或gradle dependencies
引入的外部库,可以自行修改,对于外部第三方(如QQ,微博等相关的登录分享库等)的库,可以考虑是否需要升级新的版本(新的版本很可能已经解决,因为第三方也会收到同样的问题或有人已经反馈过),或者反馈给第三方等方式解决。
使用搜索命令:
find . -name '*.jar' -exec zipgrep -i WebViewClient {} \;
输出结果为:
...
com/corn/biz/activity/BbsDetailActivity$LoanWebViewClient.class:Binary file (standard input) matches
com/corn/biz/activity/BbsDetailActivity.class:Binary file (standard input) matches
com/sina/weibo/sdk/web/client/AuthWebViewClient.class:Binary file (standard input) matches
com/sina/weibo/sdk/web/client/BaseWebViewClient.class:Binary file (standard input) matches
com/sina/weibo/sdk/web/client/DefaultWebViewClient.class:Binary file (standard input) matches
com/sina/weibo/sdk/web/client/ShareWebViewClient.class:Binary file (standard input) matches
com/sina/weibo/sdk/web/WeiboSdkWebActivity$1.class:Binary file (standard input) matches
com/sina/weibo/sdk/web/WeiboSdkWebActivity$2.class:Binary file (standard input) matches
com/sina/weibo/sdk/web/WeiboSdkWebActivity.class:Binary file (standard input) matches
sdk/meizu/auth/ui/AuthActivity$1.class:Binary file (standard input) matches
sdk/meizu/auth/ui/AuthActivity.class:Binary file (standard input) matches
com/cmic/sso/sdk/widget/a$1.class:Binary file (standard input) matches
com/cmic/sso/sdk/widget/a.class:Binary file (standard input) matches
com/tencent/connect/auth/a$a.class:Binary file (standard input) matches
com/tencent/connect/auth/a.class:Binary file (standard input) matches
com/tencent/open/c$a.class:Binary file (standard input) matches
com/tencent/open/c.class:Binary file (standard input) matches
com/tencent/open/TDialog$FbWebViewClient.class:Binary file (standard input) matches
com/tencent/open/TDialog.class:Binary file (standard input) matches
...
复制代码
逐一排查每项涉及到的外部文件,并确认是否已经处理好onReceivedSslError()
方法。
作者:HappyCorn
链接:https://juejin.im/post/5cb1416a6fb9a0685727dd92
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
解决Google Play审核中的WebViewClient.onReceivedSslError问题的更多相关文章
- 【已解决】Android ADT中增大AVD内存后无法启动:emulator failed to allocate memory 8
[问题] 折腾: [已解决]Android ADT中增大AVD内存后无法启动:emulator failed to allocate memory 8 过程中,增大对应AVD的内存为2G后,结果无法启 ...
- 解决GOOGLE不能用的办法
解决GOOGLE不能用的办法 首先平时用用百度还是足够了,但是说实话,百度在进行一些尝试搜索时真的没GOOGLE好用,经常找到一大堆广告,却不是自己想要的,比如搜索里面的双引号.and.site.fi ...
- 我的Android进阶之旅------>如何解决Android 5.0中出现的警告: Service Intent must be explicit:
我的Android进阶之旅-->如何解决Android 5.0中出现的警告: java.lang.IllegalArgumentException: Service Intent must be ...
- Android App在Google App Store中搜不到
情景:Android App在Google App Store上架成功,三星手机可以在Google App Store中搜索到,但是三星tablet却无法在Google App Store中搜索到,目 ...
- 我的Android进阶之旅------>怎样解决Android 5.0中出现的警告: Service Intent must be explicit:
我的Android进阶之旅-->怎样解决Android 5.0中出现的警告: java.lang.IllegalArgumentException: Service Intent must be ...
- Get your site working on Google Search Console , 在 Google Search Console中运行您的网站, Google Search Console
1 1 https://support.google.com/webmasters/topic/4564315? Search Console Help SEARCH CONSOLEHELP FORU ...
- php大力力 [051节] 支付宝支付.申请支付资质,等待审核中
https://beecloud.cn/doc/payapply/?index=6 支付宝支付申请支付资质 一.注册支付宝用户 在支付宝官网注册成为用户 二.签约对应支付产品 应用集成支付宝支付,需要 ...
- Google Chrome浏览器中如何使用命令
Google Chrome浏览器中如何使用命令 | 浏览:2974 | 更新:2014-02-23 23:12 | 标签:chrome 1 2 3 分步阅读 Google Chrome浏览器有很多的特 ...
- 解决cocos2dx在Xcode中运行时报:convert: iCCP: known incorrect sRGB profile 的问题
解决cocos2dx在Xcode中运行时报:convert: iCCP: known incorrect sRGB profile 的问题 本文的实践来源是参照了两个帖子完成的: http://dis ...
随机推荐
- C#高级编程笔记之第一章:.NET体系结构
1.1 C#与.NET的关系 C#不能孤立地使用,必须与.NET Framework一起使用一起考虑. (1)C#的体系结构和方法论反映了.NET基础方法论. (2)多数情况下,C#的特定语言功能取决 ...
- Java多线程:synchronized的可重入性
从Java多线程:线程间通信之volatile与sychronized这篇文章中我们了解了synchronized的基本特性,知道了一旦有一个线程访问某个对象的synchronized修饰的方法或代码 ...
- 解密TTY
本文内容来自The TTY demystified ,讲述了*NIX系统中TTY的历史与工作原理,看完后解决了我很多疑惑,于是做此翻译,与大家分享. 译者:李秋豪 江家伟 审校: V1.0 Sun M ...
- msql索引
从网上找了两种解决方案: 最近要给一个表加一个联合唯一索引,但是表中的两个联合健有重复值,导致无法创建: 解决方案一:ignore(会删除重复的记录(重复记录只保留一条,其他的删除),然后建立唯一索引 ...
- 关于Linux虚拟化技术KVM的科普 科普五(From 世民谈云计算)
另一位大神写到KVM文章,KVM 介绍(1):简介及安装.KVM 介绍(2):CPU 和内存虚拟化.KVM 介绍(3):I/O 全虚拟化和准虚拟化 [KVM I/O QEMU Full-Virtual ...
- Ubuntu 18.04 on Windows 10 更改 Oh-My-Zsh agnoster 主题下的目录背景色
题外话 我的 MacBook Pro 已经使用了6年多的时间,尽管作为一个 .NET 程序员绝大部分时间都是在 Windows 下工作,直到 .NET Core 的逐步成熟.要说 Mac OS,最满意 ...
- Unable to find remote helper for 'https'
出现这个报错,说明git目前的状态是正常的,要么没装好,要么自己解决压缩安装导致没有权限 第三次情况是,使用yum install git 重新安装后,仍然报错,是因为环境变量中GIT_HOM配置的仍 ...
- tkinter中entry输入控件(四)
entry控件 import tkinter wuya = tkinter.Tk() wuya.title("wuya") wuya.geometry("300x200+ ...
- const命令,全局变量的属性,变量的解构赋值
const命令 1:声明常量(只在当前代码块中有效)---注意声明的常量可以是对象,但是常量储存的是对象的地址,地址声明后不可变,但是可以给常量对象添加属性 全局变量的属性 1:window和glob ...
- 『网络の转载』px与em的区别
这里引用的是Jorux的“95%的中国网站需要重写CSS”的文章,题目有点吓人,但是确实是现在国内网页制作方面的一些缺陷.我一直也搞不清楚px与em之间的关系和特点,看过以后确实收获很大.平时都是用p ...