1

オンラインでウェブサイトを表示したい。オフラインモードの場合は、キャッシュされたWebサイトが表示されます。作成しましたが、オンラインの場合は機能していますが、オフラインの場合は強制終了になります。どこを間違えているのかわかりません。助けてください。

コーディングは次のとおりです。

    w=(WebView)findViewById(R.id.webView1);
    enableHTML5AppCache();
}

private void enableHTML5AppCache() {    
      w.getSettings().setAppCacheMaxSize(1024*1024*8);
      w.getSettings().setAppCachePath("/data/data/"+ getPackageName() +"/cache");
      w.getSettings().setAllowFileAccess(true);
      w.getSettings().setAppCacheEnabled(true);
      w.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
      cm = (ConnectivityManager)this.getSystemService(Activity.CONNECTIVITY_SERVICE);

      if(cm.getActiveNetworkInfo().isConnected())
         {
                w.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
            w.setInitialScale(1);
                w.loadUrl("http://www.google.com/");
         }
      else
         {
              w.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
              w.loadUrl("http://www.google.com/");
         }
}

そしてマニフェストファイルでは、私もパーミッションを使用しました

<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
4

1 に答える 1

0

cm.getActiveNetworkInfo()利用可能なネットワークがない場合、nullに等しくなる可能性があります

このようなネットワークをチェックする必要があります

if(cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnected()) 

このリンクを参照してください

于 2013-01-02T04:33:10.030 に答える