2012-05-03 4 views
2

起動前に電話でテストするために、下請け業者からPhoneGapソリューションを受け取りました。EclipseでPhoneGapアプリをテストするときに「ネットワークエラーが発生しました」

私はプロジェクトをEclipseにインポートします。

私はindex.htmlファイルを開いて、自分のコンピュータ上でローカルにアプリケーションをテストすることができます。

file://E:/AppDevelopment/Workspace/myproject/assets/www/index.html 

をこれまでのところは良いです。それから私は私の電話をUSBキャビル経由で起動しようとします。フロントページが開きますが、CSSはありません。そして、私は任意のリンクをクリックしたときに、私は次のようなメッセージが出ます:

"A network error occurred. (file:///android_asset/www/car.html?carID=106" 

は、誰でも同様の問題がありましたか?何が間違っているのかをどのようにデバッグすることができますか?

UPDATE

Dmytoの提案に続いて、私はonReceivedErrorを変更しようとしています。しかし、私はコーディング・エラーを得るだけです。

package com.phonegap.mysite; 

import android.os.Bundle; 
import org.apache.cordova.*; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class Mysiteextends DroidGap { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     super.loadUrl("file:///android_asset/www/index.html"); 

    } 

/** This is where it goes wrong **/ 

    WebView webview = new WebView(this); 

    webview.setWebViewClient(new WebViewClient() { 
     @Override 
     public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
       Log.i("WEB_VIEW_TEST", "error code:" + errorCode); 
       super.onReceivedError(view, errorCode, description, failingUrl); 
     } 

} 

答えて

2

index.htmlコードが表示されていないと、CSSファイルを正しく参照しているかどうかを確認するのが難しいです。また、そのURL:file:///android_asset/www/car.html=carID=106は有効ではないようですか? =carID=106とは何ですか?適切なURLは?carID=106である必要があります。しかし、もっと多くのことがあるのを待って、Androidのバグがあり、URLパラメータが正しく読み込まれません。

これはAndroidのバグです。あなたはそれを主演に行く必要があります。一方

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

は、ページ間で値を渡すためにlocalStorage.setItem()/getItem()を使用しています。

+0

申し訳ありません、URLはタイプミスでした。私は '?'ではなく '?'を使っています。正しいURLは 'file:///android_asset/www/car.html?carID = 106'です。私のQで述べたように、私のコンピュータ(とEclipse)でテストすると、アプリは正常に動作します。私の電話ではテストされません。私はAndroid用のコーディングアプリの経験がないので、さまざまなコードが**どこにあるのかわかりません。 – Steven

+1

あなたはAndroid OSのバグに悩まされています。したがって、あるページから別のページに情報を渡す場合は、localStorageを使用する必要があります。 –

+0

いくつかのテストの後、あなたは絶対に正しいです。私の質問は、 iOSとWindows PhoneでlocalStorageを使用できますか? – Steven

0

あなたは、あなたのWebビューにWebViewClientを設定し、onReceivedError方法をovverideすることができます。

+0

を使用する必要があります。どのファイルでWebViewClientを設定しますか? – Steven

+0

文書を参考にしてください:http://developer.android.com/reference/android/webkit/WebView.html –

+0

はい、私はそれを見ますが、どこには言いません。テストしたいすべての* .htmlファイルに貼り付ける必要がありますか?または、これはいくつかのjsスクリプトに入れられるべきですか? **編集:**私はここで答えを見つけたと思う:http://developer.android.com/resources/tutorials/views/hello-webview.html – Steven

0

あなたは私がアプリ(hencheサブ請負業者)のための1行をコード化されたことがありませんIceCreamCordovaWebViewClient

@Override 
    public void init() { 
    super.init(webView, new IceCreamCordovaWebViewClient(this, webView), new CordovaChromeClient(this, webView)); 
} 
関連する問題