美文网首页
解决ionic3 无法访问https请求的问题

解决ionic3 无法访问https请求的问题

作者: ouxuwen | 来源:发表于2019-05-23 17:10 被阅读0次

    在ionic的开发中,我需要用进行https请求,但是我发现在debug下访问没有问题,但是一旦打包签名后就无法访问了。这是由于在测试APK的时候,如果后端API为https的,而且在测试服的https证书是非正式的话,会导致测试版apk无法发起http请求。我是用的是自签名的证书,因此导致无法访问。

    经过苦苦寻觅,终于找到了一种忽略ssl认证的方法,可以解决遇到的问题。方法如下:

    android 端
    找到CordovaWebViewClient.java文件,目录位置:

    project/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebViewClient.java
    修改onReceivedSslError方法,修改如下

    public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
      final String packageName = this.cordova.getActivity().getPackageName();
      final PackageManager pm = this.cordova.getActivity().getPackageManager();
     
      ApplicationInfo appInfo;
      try {
        appInfo = pm.getApplicationInfo(packageName, PackageManager.GET_META_DATA);
        if ((appInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0) {
          // debug = true
          handler.proceed();
          return;
        } else {
          // debug = false
          // THIS IS WHAT YOU NEED TO CHANGE:
          // 1. COMMENT THIS LINE
          // super.onReceivedSslError(view, handler, error);
          // 2. ADD THESE TWO LINES
          // ---->
          handler.proceed();
          return;
          // <----
        }
      } catch (NameNotFoundException e) {
        // When it doubt, lock it out!
        super.onReceivedSslError(view, handler, error);
      }
    }
    

    文件所处位置

    cordova v4及以下

    project/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebViewClient.java

    cordova v5

    project/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebViewClient.java

    ios端

    将AppDelegate.m文件下修改为:

    @implementation NSURLRequest(DataController)
    + (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host
    {
        return YES;
    }
    @end
    

    文件所在位置:

    project/platforms/ios/Project/Classes/AppDelegate.m

    相关文章

      网友评论

          本文标题:解决ionic3 无法访问https请求的问题

          本文链接:https://www.haomeiwen.com/subject/lcpbzqtx.html