Android - CordovaWebView无法从资产加载html文件

时间:2014-08-19 14:02:04

标签: android cordova webview cordovawebview

我在我的android项目中使用 CordovaWebView 。 当我运行应用程序app load catch并显示一个空白的Toast消息。 在logcat中我看到一个错误,说文件不存在于资产中。 我将 jar 文件添加到,并在我的活动布局中添加了 CordovaWebView

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="11"
    android:orientation="vertical" >

    <org.apache.cordova.CordovaWebView
        android:id="@+id/tutorialView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

并使用此代码从资产加载 html 文件:

CordovaWebView cwv;
@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_course);

    try{
        cwv = (CordovaWebView) findViewById(R.id.tutorialView);
        cwv.loadUrlIntoView("file:///android_asset/test.html");
    }
    catch(Exception e)
    {
        ToastHelper.Long(e.getMessage());
    }
}

html文件存在于资源中,我可以使用 WebView (不是 CordovaWebView )加载它。

请与我分享您解决此问题的想法。

问候。

2 个答案:

答案 0 :(得分:2)

for index.html

<!DOCTYPE HTML>

<html>

  <head>

    <meta name="viewport" content="width=320; user-scalable=no" />

    <meta http-equiv="Content-type" content="text/html; charset=utf-8">

    <title>PhoneGap Android App</title>

              <script type="text/javascript" charset="utf-8" src="cordova-2.7.0.js"></script>      


 <style type="text/css">
@font-face {
    font-family: AayatQuraan;
    src: url("file:///android_asset/fonts/AayatQuraan.ttf")
}
body {
    font-family: AayatQuraan;
    font-size: 60px;
    text-align: justify;
}
</style>
  </head>

  <body onload="init();"  >
جميل
  </body>

</html>

for java

package com.example.hellogap;


import org.apache.cordova.DroidGap;

import android.os.Bundle;

public class MainActivity extends DroidGap {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        super.setIntegerProperty("loadUrlTimeoutValue", 60000);        
        super.loadUrl("file:///android_asset/www/index.html",1000);
    }

}

输出类似这样的东西=

enter image description here

答案 1 :(得分:0)

尝试使用

cwv.loadUrl("file:///android_asset/test.html");

而不是

cwv.loadUrlIntoView("file:///android_asset/test.html");

看到这个

http://infil00p.org/android/cordova/phonegap/2012/12/04/advanced-tutorial-using-cordovawebview-on-android/