天天看點

android WebView使用cmwap無法聯網解決辦法

 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裡面設定标志,重新載入第一個頁面即可。

繼續閱讀