PhoneGap/Cordova で構築された Android アプリが、自己署名 SSL 証明書を使用してサーバーに AJAX HTTPS リクエストを送信できるようにするために、ここにあるChris が提供する回避策を実装しようとしています。私は PhoneGap/Cordova 2.1.0 を使用していますが、Chris は 1.7.0 を使用していました。問題なく MyWebViewClient クラスを作成できます。ただし、このコード行を追加すると...
this.setWebViewClient(this.appView, new MyWebViewClient(this));
... MainActivity クラスのオーバーライドされた init() メソッドに対して、次のエラーが表示されます。
メソッド setWebViewClient(CordovaWebView, MyWebViewClient) はタイプ MainActivity に対して未定義です
MyWebViewClient.java のコードは次のとおりです。
package [packagename];
import android.net.http.SslError;
import android.webkit.SslErrorHandler;
import android.webkit.WebView;
import org.apache.cordova.CordovaWebViewClient;
import org.apache.cordova.DroidGap;
public class MyWebViewClient extends CordovaWebViewClient {
public class MyWebViewClient(DroidGap ctx) {
super(ctx);
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed();
}
}
MainActivity.java のコードは次のとおりです。
package [packagename];
import android.os.Bundle;
import org.apache.cordova.*;
public class MainActivity extends DroidGap {
@Override
public void init() {
super.init();
this.setWebViewClient(this.appView, new MyWebViewClient(this)); // Error occurs here
}
@Override
public void onCreate(bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setBooleanProperty("keeprunning", false);
super.loadUrl("file:///android_asset/www/index.html");
}
}
私には十分な評判がありません。そうでなければ、クリスの回答にコメントしただけです。また、私は jQuery ソリューションを探していません (この問題を回避するために $.ajax() 呼び出しを行うことができることは既に知っていますが、jQuery をアプリから除外しようとしています)。
何か案は?あなたの助けは大歓迎です!
編集:返信する前に、以下の私のコメントを参照してください。