0

当我在模拟器中运行我的 Cordova 应用程序时,它加载正常(尽管速度非常慢,这显然是一个常见的抱怨)。我正在使用 jQuery Mobile,由于 JQM 的表单方法存在某些问题以及 JQM 和 Google Maps 之间的冲突,我的应用程序的结构使得某些页面会导致整个 DOM 重新加载,而不是 JQM 通常引起的 AJAX 转换。该应用程序完全被带到一个单独的 html 文件中。

这在 iOS 中运行良好,但是当我在 Android 模拟器中运行它时,我得到“应用程序错误:发生网络错误。(file:///android_asset/www/nameOfPageIWasGoingTo.html?parameter1=34¶meter2=true)”

这些页面中的每一页都重新包含了 Cordova,我放置了该行

super.setIntegerProperty("loadUrlTimeoutValue", 60000);

在我的主 .java 文件中,现在 onCreate 看起来像:

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setIntegerProperty("loadUrlTimeoutValue", 60000);
super.loadUrl("file:///android_asset/www/index.html");
}

不过,我有这个错误。谁能解释一下?

4

4 回答 4

1

如果您尝试在 URL 中传递参数,Android 中存在一个错误,即 WebView 无法加载页面。当它应该加载“nameOfPageIWasGoingTo.html”并将参数传递给页面时, Android会将“nameOfPageIWasGoingTo.html?parameter1=34¶meter2=true”视为文件名。同时,您应该使用 localStorage.setItem/getItem 在页面之间传递参数。

同时,您应该关注以下问题:

https://code.google.com/p/android/issues/detail?id=17535

https://code.google.com/p/android/issues/detail?id=17327

于 2012-05-29T18:59:21.037 回答
0

您可能需要使用 IceCreamCordovaWebViewClient

@Override
    public void init() {
    super.init(webView, new IceCreamCordovaWebViewClient(this, webView), new CordovaChromeClient(this, webView));
}
于 2013-06-05T18:34:22.480 回答
0

出现此网络错误的原因有多种,但我的猜测是您的 config.xml 正在寻找 index.html 并且您已将 html 页面命名为其他名称。("nameOfPageIWasGoingTo.html")

于 2013-09-26T15:10:40.643 回答
0

不要使用查询字符串参数,而是使用 window.localStorage。有点晚了,但已确认 =)。

于 2013-09-26T16:58:17.837 回答