Опитвам се да приложа заобиколното решение, предоставено от Крис, намерено тук, за да позволите на изградено от PhoneGap/Cordova приложение за Android да прави AJAX HTTPS заявки към сървър със самоподписан 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 извън моето приложение).
Някакви идеи? Вашата помощ е много ценена!
Редактиране: Моля, вижте коментарите ми по-долу, преди да отговорите.