android WebView使用cmwap无法联网解决办法

无鸯 发布于 2011/09/20 10:03
阅读 823
收藏 0

云栖大会9月17火热来袭,云栖训练营福利提前大放送!>>>

1.某些Rom在wifi环境下取代理依然会取到cmwap设置的代理值,所以取代理时判断一下手机网络环境,如果是gprs上网,则不取代理。
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
if (activeNetworkInfo != null) {
	int type = activeNetworkInfo.getType();

	// TODO 防止wifi下读取移动的代理
	if (type == ConnectivityManager.TYPE_MOBILE) {
		//取代理
	}else{
		//不取代理
	}
}

2. 某些rom的webkit在cmwap下,webkit连接不上或是时断时连,需要在onResume()添加 WebView.enablePlatformNotifications();,onStop添加 WebView.disablePlatformNotifications();。但是此时如果你需要刚进入这个activity就load页面,第一 次进入时load的第一个页面是load不出来的,会停留很久并且不出错误页面,不调用WebViewClient.onReceivedError。个 人试过setHttpAuthUsernamePassword也不好使。
个人解决方案:
    mWebPage.post(new Runnable(){
            @Override
            public void run() {
                mWebPage.loadUrl(url);
                
            }
            
        });

此时第一此load页面会很快调用WebViewClient.onReceivedError,你再在WebViewClient.onReceivedError里面设置标志,重新载入第一个页面即可。
加载中
0
人生的过客
人生的过客
不管用。 有没有更好的办法。
返回顶部
顶部