phonegap 解决https访问问题

ios报错

在AppDelegate.m文件在最后加入(在@end后面加空行):

@implementation NSURLRequest(DataController) + (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host {

   return YES;
} @end

 

 

 

android没出错,出错可以这么解决

main.java,友盟继承的可以不用看:
[java] view plaincopy在CODE上查看代码片派生到我的代码片
public 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:
[java] view plaincopy在CODE上查看代码片派生到我的代码片
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.java,名字有点长,网上参考下来的,也懒得去改了:
[java] view plaincopy在CODE上查看代码片派生到我的代码片
import 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值