phonegap3+,https访问

来源:互联网 发布:穆雅斓的淘宝店没有了 编辑:程序博客网 时间:2024/06/06 09:29

ios环境,默认无法https访问,如下方法解决:

<span style="font-size:14px;">在AppDelegate.m文件在最后加入(在@end后面加空行):@implementation NSURLRequest(DataController) + (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host {   return YES;} @end</span>

android环境下默认可以,如果出错,如下方法解决:

main.javapublic class main extends CordovaActivity   {              @Override      public void onCreate(Bundle savedInstanceState)      {          super.onCreate(savedInstanceState);          UmengUpdateAgent.setUpdateOnlyWifi(false);          UmengUpdateAgent.update(this);          super.init();          // Set by <content src="index.html" /> in config.xml          super.loadUrl(Config.getStartUrl());                  //super.loadUrl("file:///android_asset/www/index.html")      }        @Override      protected CordovaWebViewClient makeWebViewClient(CordovaWebView webView) {          // TODO Auto-generated method stub           if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.HONEYCOMB) {                  return new SSLAcceptingCordovaWebViewClient(this, webView);              } else {                  return new SSLAcceptingIceCreamCordovaWebViewClient(this, webView);              }      }  }  SSLAcceptingCordovaWebViewClient:import org.apache.cordova.CordovaInterface;  import org.apache.cordova.CordovaWebView;  import org.apache.cordova.CordovaWebViewClient;  import org.apache.cordova.DroidGap;    import android.net.http.SslError;  import android.webkit.SslErrorHandler;  import android.webkit.WebView;    public class SSLAcceptingCordovaWebViewClient extends CordovaWebViewClient{            public SSLAcceptingCordovaWebViewClient(CordovaInterface cordova, CordovaWebView view) {          super(cordova, view);          // TODO Auto-generated constructor stub      }            @Override          public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {              // testing against getPrimaryError() or hasErrors() will fail on Honeycomb or older.              // You might check for something different, such as specific info in the certificate,              //if (error.getPrimaryError() == SslError.SSL_IDMISMATCH) {                  handler.proceed();              //} else {              //    super.onReceivedSslError(view, handler, error);              //}          }  }  SSLAcceptingIceCreamCordovaWebViewClient.javaimport org.apache.cordova.CordovaInterface;  import org.apache.cordova.CordovaWebView;  import org.apache.cordova.IceCreamCordovaWebViewClient;    import android.net.http.SslError;  import android.webkit.SslErrorHandler;  import android.webkit.WebView;    public class SSLAcceptingIceCreamCordovaWebViewClient extends IceCreamCordovaWebViewClient {      public SSLAcceptingIceCreamCordovaWebViewClient(CordovaInterface cordova, CordovaWebView view) {          super(cordova, view);      }        @Override      public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {          handler.proceed();      }  }


0 0
原创粉丝点击