Я пытаюсь реализовать обходной путь, предоставленный Крисом, найденным здесь, чтобы разрешить Android-приложению, созданному с помощью PhoneGap/Cordova, отправлять HTTPS-запросы AJAX на сервер с самозаверяющим сертификатом SSL. Я использую PhoneGap/Cordova 2.1.0, тогда как Крис использовал 1.7.0. Я могу без проблем создать класс MyWebViewClient. Однако, когда я добавляю эту строку кода...
this.setWebViewClient(this.appView, new MyWebViewClient(this));
... к переопределенному методу init() класса MainActivity я получаю эту ошибку:
Метод 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 в своем приложении).
Любые идеи? Ваша помощь очень ценится!
Редактировать: Пожалуйста, ознакомьтесь с моими комментариями ниже, прежде чем отвечать.