gpt4 book ai didi

cordova - 如何在ionic中为https请求添加android ssl证书?

转载 作者:行者123 更新时间:2023-12-03 17:38:27 30 4
gpt4 key购买 nike

在 ionic 模拟器中,所有 http 和 https 工作正常,但在真实设备发布版本中停止工作。

许多人建议为发布版本添加 SSL 证书,但我不知道如何添加?

我已经尝试了所有这些来发出 https 请求?

<access origin="*"/>
<access origin="*"/>
<allow-navigation href="*"/>
<allow-intent href="*" />

还添加了白名单插件但不起作用。

也试过这个但不起作用
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">

最佳答案

是的,这是所有开发人员提出的最常见的问题..最后我找到了答案,这里是..

SSL 证书足以让网站通过 HTTPS 进行连接,但对于基于 ionic 的应用程序构建等混合应用程序而言,SSL 本身是不够的,您需要一个值(value)几百美元的代码签名证书。

另一种选择是使用您可以免费创建的自签名证书,在这里您也可以通过 HTTPS 连接到 ionic web 版本,但再次编译后,apk 文件将停止连接到数据库服务器..

这是您可以使用自签名证书在服务中添加 HTTPS 端口或 HTTP api 链接的技巧。

完全按照以下命令操作:

  • ionic 服务
  • ionic 构建
  • ionic 构建--prod
  • Cordova 平台添加安卓

  • 之后,停止编译,放松..现在你会发现一个名为platform的文件夹,路径如下
    项目/平台/android/CordovaLib/src/org/apache/cordova/CordovaWebViewClient.java

    按原样进行以下修改

    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 构建 --release android

  • 在此之后,通常的命令 jarsiner 和 zipalign

    您的 apk 应该使用您的自签名证书在 SSL 中的 HTTPS 端口中运行..

    关于cordova - 如何在ionic中为https请求添加android ssl证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40147383/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com