質問

かったので試しサンプル、デモンストレーションからコードをGoogleおよびその他の資源の WebView, してしまっているんですけどいので自分でコードされているとは思いませんが、仕事でした。

い負荷 myfile.html いただける資産フォルダー用:

private WebView myWebView;

myWebView.loadUrl("file:///android_assets/myfile.html");

にエミュレータエラー

のウェブページ file:///android_assets/myfile.html できない としてロードされます:要求されたファイルは見つかりませんでした。 /android_assets/myfile.html

こんなくだらないことそのファイルを res/raw/ フォルダー用:

myWebView.loadUrl("file:///android_res/raw/myfile.html");

そのエミュレータをandroid2.2APIレベルの8で負荷のファイルも、他の古いバージョンも同じようにエラーとなります。私何かが足りない?

がなくなりますのロードします。htmlファイルをアプリケーションパッケージで動作するすべてのAPIのバージョン?

役に立ちましたか?

解決

[OK]を、それは私の非常に愚かな間違いでした。私誰かが同じ問題を抱えているだけの場合には、ここで答えを投稿してください。

file:///android_asset/*は(私はいつもそれが「s」を持っている必要があります考えていたフォルダ資産の無い「S」で)あるフォルダの資産に格納されているファイルの正しいパスます。

そして、すべてのAPIレベルの下mWebView.loadUrl("file:///android_asset/myfile.html");作品ます。

mWebView.loadUrl("file:///android_res/raw/myfile.html");は、APIレベル8でのみ動作します。しかし、それは今問題ではない理由私はまだ分からない。

他のヒント

プロジェクトフォルダのフォルダ資産のあなたの.htmlファイルを貼り付けます。 そして、FOLコードとレイアウトフォルダ内のXMLファイルを作成します。 my.xmlます:

<WebView  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/webview"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
    />

タグの活動にFOLのコードを追加します
setContentView(R.layout.my);
    WebView mWebView = null;
    mWebView = (WebView) findViewById(R.id.webview);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.loadUrl("file:///android_asset/new.html"); //new.html is html file name.

あなたの構造は次のようにする必要がある場合:

/assets/html/index.html

/assets/scripts/index.js

/assets/css/index.css

それからちょうど行う(のAndroidのWebView:取扱向きの変更を)

    if(WebViewStateHolder.INSTANCE.getBundle() == null) { //this works only on single instance of webview, use a map with TAG if you need more
        webView.loadUrl("file:///android_asset/html/index.html");
    } else {
        webView.restoreState(WebViewStateHolder.INSTANCE.getBundle());
    }

あなたが追加を確認します。

    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
    if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) {
        webSettings.setAllowFileAccessFromFileURLs(true);
        webSettings.setAllowUniversalAccessFromFileURLs(true);
    }

それからちょうどURLを使用

<html>
<head>
    <meta charset="utf-8">
    <title>Zzzz</title>
    <script src="../scripts/index.js"></script>
    <link rel="stylesheet" type="text/css" href="../css/index.css">

コピーして)あなたのプロジェクトのフォルダ資産のあなたの.htmlファイルを貼り付けてのonCreate(上の自分の活動にコードの下に追加します。

        WebView view = new WebView(this);
        view.getSettings().setJavaScriptEnabled(true);
        view.loadUrl("file:///android_asset/**YOUR FILE NAME**.html");
        view.setBackgroundColor(Color.TRANSPARENT);
        setContentView(view);

あなたは手動でhtmlファイルを読み込み、それを示すために、WebViewののloadDataまたはloadDataWithBaseUrlメソッドを使用することができます。

デバッグ作成 とは異なる リリース からかもしれないけど、僕:

考えるプロジェクトファイル構造のようなこと"この場合、デバッグを組み立て]:

src
  |
  debug
      |
      assets
           |
           index.html

すべindex.html おWebViewのように:

WebView web=(WebView)findViewById(R.id.web);
web.loadUrl("file:///android_asset/index.html");

レイアウト:

<WebView
android:id="@+id/web"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="top"/>

そのリリースを組み立て、そのあるべき姿について:

src
  |
  release
        |
        assets
             |
             index.html  
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top