当我在模拟器中运行我的Cordova应用程序时,它可以正常加载(尽管速度非常慢,这显然是一种常见的抱怨)。我正在使用jQuery Mobile,由于我对JQM的表单方法以及JQM和Google Maps之间的冲突存在某些问题,我的应用程序的结构使得某些页面导致整个DOM重新加载而不是JQM通常引发的AJAX转换。该应用程序完全被带到一个单独的html文件。
这在iOS中运行良好,但是当我在Android模拟器中运行时,我收到“应用程序错误:发生网络错误。(file:///android_asset/www/nameOfPageIWasGoingTo.html?parameter1 =34¶meter2=真)“
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");
}
尽管如此,我有这个错误。谁能解释一下?
答案 0 :(得分:1)
Android中存在一个错误,如果您尝试在URL中传递参数,则WebView无法加载页面。 Android将“nameOfPageIWasGoingTo.html?parameter1 =34¶meter2= true”视为文件名时应加载“nameOfPageIWasGoingTo.html”并将参数传递给页。在此期间,您应该使用localStorage.setItem / getItem在页面之间传递参数。
与此同时,你应该明白这些问题:
答案 1 :(得分:0)
您可能需要使用IceCreamCordovaWebViewClient
@Override
public void init() {
super.init(webView, new IceCreamCordovaWebViewClient(this, webView), new CordovaChromeClient(this, webView));
}
答案 2 :(得分:0)
出现这种网络错误有多种原因,但我的猜测是你的config.xml正在寻找index.html而你已经将你的html页面命名为其他东西了。 ( “nameOfPageIWasGoingTo.html”)
答案 3 :(得分:0)
不要使用查询字符串参数,而是使用window.localStorage。有点迟,但确认=)。