首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在离子型中为https请求添加android证书?

如何在离子型中为https请求添加android证书?
EN

Stack Overflow用户
提问于 2016-10-20 06:52:28
回答 1查看 9.8K关注 0票数 8

在离子模拟器中,所有http和https都可以正常工作,但在实际设备发布版本中,它停止工作。

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

我试过所有这些都是为了发出https请求?

代码语言:javascript
运行
复制
<access origin="*"/>
<access origin="*"/>
<allow-navigation href="*"/>
<allow-intent href="*" />

还增加了白名单插件,但不工作。

也试过这个但不起作用

代码语言:javascript
运行
复制
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
EN

回答 1

Stack Overflow用户

发布于 2018-12-19 10:02:18

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

SSL证书足以让网站通过HTTPS进行连接,但要使用像Apps这样的混合应用程序,SSL本身是不够的,您需要花费几百美元的代码签名证书。

另一种选择是使用可以免费创建的自签名证书,这里还可以通过HTTPS连接到离子型web版本,但是编译后,apk文件再次被停止以连接到DB服务器。

下面是使用自签名认证在服务中添加HTTPS端口或HTTP链接的诀窍。

完全按照以下命令执行:

  • 离子服务
  • 离子构筑
  • 离子构筑-探针
  • cordova平台添加android

在此之后,停止编译,放松。现在您将找到一个名为platform的文件夹,路径如下所示: project/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebViewClient.java

按其原样进行以下修改

代码语言:javascript
运行
复制
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构建-发布android

之后,通常的命令jarsiner和and

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

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40147383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档