最近测试提了一个bug,说是当手机没有安装微博和QQ客户端时,分享到微博、QQ时,web授权页一片空白,没有展示输入账号密码的页面。
虽然我心里想的是---现在还有谁手机里面没有安装QQ和微博,怎么可能还会出现这种问题的场景。然而没有办法,总有刁民想要害我们程序员。
在我翻了很多贴子之后,终于在微博分享github的issue上找到了答案:
那就是在APP里面有某个页面使用了WebView,并且WebView设置了暂停,例如:
if (wvContent != null) {
wvContent.pauseTimers();
wvContent.onPause();
}
我也不知道是因为什么,反正是影响了微博和QQ的web授权页的打开,既然找到原因了之后那么解决就很简单了,只需要在要授权的代码前面加上以下代码就可以了:
WebView wvTemp = new WebView(activity.getApplicationContext());
wvTemp.resumeTimers();
wvTemp.removeAllViews();
wvTemp.destroy();
使用getApplicationContext()作为context参数的话,这样WebView就不持有Activity对象,也就避免了WebView内存泄漏的问题。
完美解决!!!
网友评论