解决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 ...
随机推荐
- 同一台电脑上配置多个解压版tomcat方法(本例安装两个)
一.在环境变量中设置变量() CATALINA_HOME = tomcat路径一 CATALINA_BASE = tomcat路径一 CATALINA_HOME2 = tomcat路径二 CATALI ...
- 架构之Nginx(负载均衡/反向代理)
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器 ,也是一个 IMAP/POP3/SMTP 代理 服务器 . Nginx 是由 Igor Sys ...
- Intellij-Idea Maven SSH项目的搭建
添加阿里云镜像 在.m2/settings.xml中, <mirror> <id>nexus-aliyun</id> <name>Nexus aliyu ...
- Python_csv电子表格
import csv with open('test.csv','w',newline='')as fp: test_writer=csv.writer(fp,delimiter=' ',quotec ...
- Spring Boot实战笔记(五)-- Spring高级话题(Spring Aware)
一.Spring Aware Spring 依赖注入的最大亮点就是你所有的 Bean 对 Spring容器的存在是没有意识的.即你可以将你的容器替换成其他的容器,如Google Guice,这时 Be ...
- CF#483(div2 C)
http://codeforces.com/contest/984/problem/C C. Finite or not time limit per test 1 second memory lim ...
- MySQL松散索引扫描与紧凑索引扫描
什么是松散索引? 答:实际上就是当MySQL 完全利用索引扫描来实现GROUP BY 的时候,并不需要扫描所有满足条件的索引键即可完成操作得出结果. 要利用到松散索引扫描实现GROUP BY,需要至少 ...
- 并发库应用之十一 & 阻塞队列的应用
队列包含固定长度的队列和不固定长度的队列,队列的规则就是:先进先出.固定长度的队列往里放数据,如果放满了还要放,阻塞式队列就会等待,直到有数据取出,空出位置后才继续放:非阻塞式队列不能等待就只能报错了 ...
- spring-cloud-sleuth+zipkin追踪服务实现(三)
1.前言 在上一篇spring-cloud-sleuth+zipkin追踪服务实现(二)中我们讲述了利用mq的方式发送数据,存储在mysql,实际生产过程中调用数据量非常的大,mysql存储并不是很好 ...
- Thread部分总结以及小例子
Thread总结:一直以来用thread比较多,一般会在同步以及ui中用到.以下对于经常用作为简单介绍.一 实现方法: 一种直接new thread,另外一种是实现Runnable接口,在创建thre ...