android 在cmwap等代理接入點下的一些經驗分享
文/rslhg
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裡面設定标志,重新載入第一個頁面即可。