閱讀899 返回首頁    go 技術社區[雲棲]


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裏麵設置標誌,重新載入第一個頁麵即可。

最後更新:2017-04-02 06:51:55

  上一篇:go [usaco]4.1.3 Fence Rails 多維背包問題,dfsid
  下一篇:go Android得到已安裝的應用程序信息!