我正在尝试实施由 Chris 提供的解决方法,在此处找到,以允许 PhoneGap/Cordova 构建的 Android 应用程序向具有自签名 SSL 证书的服务器发出 AJAX HTTPS 请求。我使用的是 PhoneGap/Cordova 2.1.0,而 Chris 使用的是 1.7.0。我可以毫无问题地创建 MyWebViewClient 类。但是,当我添加这行代码时......
this.setWebViewClient(this.appView, new MyWebViewClient(this));
...对于 MainActivity 类的重写 init() 方法,我收到此错误:
未为 MainActivity 类型定义方法 setWebViewClient(CordovaWebView, MyWebViewClient)
这是我的 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 远离我的应用程序)。
有任何想法吗?非常感谢您的帮助!
编辑:请在回复之前查看我的评论。