在应用程序浏览器中摆脱Cordova中的SSL验证

钱纳利

我正在构建一个Web和混合移动应用程序。这些应用程序在分阶段环境中使用ssl自签名证书与第三方服务进行通信。桌面浏览器允许接受带有风险警告的无效证书,但在iOS应用中我收到此错误

Failed to load resource: The certificate for this server is invalid. You might be connecting to a server that is pretending to be "xxx" which could put your confidential information at risk.

我知道有风险,但是由于我的第三方提供商无法为登台服务器中的服务提供有效的ssl证书,因此我别无选择。

是否有任何配置/可能性允许iOS和android inappbrowser插件中的无效ssl证书。

非常感谢您的帮助。

dmn

iOS始终会在调试或发布模式下抱怨无效证书。为避免这种情况,您应将以下代码放在AppDelegate.m文件的末尾。

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

对于Cordova用户,此文件位于

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

Android(特定于Cordova)

在Android中,历史是不同的。它将允许您使用无效的证书向服务提出请求,但前提是应用是在构建模式下编译的。另一方面,当您以发布模式构建应用程序(即:将APK发送给同事或类似的人)时,Cordova Web视图即您编写的HTML + CSS + JS的运行地,不允许您提出“不安全”的请求。再次,为避免这种情况,您应该修改平台文件。在这种情况下,文件将为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 v4及更低版本)中

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

在新版本的Cordova(v5和更高版本)中,文件现在位于

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

您不应将这些解决方案用于生产应用程序。这只是为了测试他们或与同事共享。

参考:忽略适用于Android和iOS的Cordova上的无效SSL证书

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在应用程序浏览器中隐藏cordova无法正常工作

来自分类Dev

正确在浏览器或本机应用程序中打开Facebook页面链接IOS Cordova

来自分类Dev

phonegap和cordova无法在应用程序浏览器中打开链接

来自分类Dev

正确在浏览器或本机应用程序中打开Facebook页面链接IOS Cordova

来自分类Dev

从流星中的浏览器启动短信应用程序

来自分类Dev

在独立应用程序中从浏览器检索Cookie

来自分类Dev

在Ionic Cordova应用程序中,如何允许通过不同来源的内容在系统浏览器中打开链接

来自分类Dev

Cordova包装器应用程序,其中内部链接加载到应用程序中,外部链接加载到浏览器中

来自分类Dev

Google Maps JavaScript API在浏览器中有效,但在设备上的Cordova应用程序中无效

来自分类Dev

是否可以在浏览器中以Web应用程序形式查看Visual Studio Cordova项目的输出?

来自分类Dev

是否可以在浏览器中以Web应用程序形式查看Visual Studio Cordova项目的输出?

来自分类Dev

是否可以在microsoft-edge浏览器中打开来自ios平台的ionic cordova应用程序的链接

来自分类Dev

Android应用程序链接-在浏览器中从应用程序打开URL而不触发应用程序链接

来自分类Dev

iOS应用程序,链接以在浏览器中打开网站,网站中的链接关闭浏览器

来自分类Dev

应用程序浏览器中的Ionic在其他浏览器中打开URL

来自分类Dev

pdf在Ionic应用程序中的浏览器中但在移动设备中无法读取

来自分类Dev

pdf在Ionic应用程序中的浏览器中但在移动设备中无法读取

来自分类Dev

如何使Google Chrome浏览器的“应用程序模式”在外部浏览器中打开外部链接?

来自分类Dev

Facebook应用程序请求显示在桌面浏览器中,而不显示在iOS应用程序中

来自分类Dev

为什么html5应用程序在浏览器中的工作方式不同于在Cordova(Android)中的工作方式?

来自分类Dev

在浏览器中在应用程序外部打开的片段android中的webview

来自分类Dev

java应用程序中只缓存浏览器中的图像而没有.htaccess文件

来自分类Dev

Beta 版应用程序显示在浏览器中,但不在 Google Play 中?

来自分类Dev

在我的Symfony 2应用程序中配置基于HTTP浏览器的基本身份验证-不显示HTTP身份验证登录

来自分类Dev

为什么我不能在浏览器中运行空白的Cordova应用程序:您可能没有运行此项目所需的环境或操作系统

来自分类Dev

从浏览器运行应用程序

来自分类Dev

无法阻止浏览器页面在角度应用程序中刷新/重新加载

来自分类Dev

简单的Angular JS应用程序未显示在浏览器中

来自分类Dev

大量发布请求在浏览器中有效,但在应用程序中无效

Related 相关文章

  1. 1

    在应用程序浏览器中隐藏cordova无法正常工作

  2. 2

    正确在浏览器或本机应用程序中打开Facebook页面链接IOS Cordova

  3. 3

    phonegap和cordova无法在应用程序浏览器中打开链接

  4. 4

    正确在浏览器或本机应用程序中打开Facebook页面链接IOS Cordova

  5. 5

    从流星中的浏览器启动短信应用程序

  6. 6

    在独立应用程序中从浏览器检索Cookie

  7. 7

    在Ionic Cordova应用程序中,如何允许通过不同来源的内容在系统浏览器中打开链接

  8. 8

    Cordova包装器应用程序,其中内部链接加载到应用程序中,外部链接加载到浏览器中

  9. 9

    Google Maps JavaScript API在浏览器中有效,但在设备上的Cordova应用程序中无效

  10. 10

    是否可以在浏览器中以Web应用程序形式查看Visual Studio Cordova项目的输出?

  11. 11

    是否可以在浏览器中以Web应用程序形式查看Visual Studio Cordova项目的输出?

  12. 12

    是否可以在microsoft-edge浏览器中打开来自ios平台的ionic cordova应用程序的链接

  13. 13

    Android应用程序链接-在浏览器中从应用程序打开URL而不触发应用程序链接

  14. 14

    iOS应用程序,链接以在浏览器中打开网站,网站中的链接关闭浏览器

  15. 15

    应用程序浏览器中的Ionic在其他浏览器中打开URL

  16. 16

    pdf在Ionic应用程序中的浏览器中但在移动设备中无法读取

  17. 17

    pdf在Ionic应用程序中的浏览器中但在移动设备中无法读取

  18. 18

    如何使Google Chrome浏览器的“应用程序模式”在外部浏览器中打开外部链接?

  19. 19

    Facebook应用程序请求显示在桌面浏览器中,而不显示在iOS应用程序中

  20. 20

    为什么html5应用程序在浏览器中的工作方式不同于在Cordova(Android)中的工作方式?

  21. 21

    在浏览器中在应用程序外部打开的片段android中的webview

  22. 22

    java应用程序中只缓存浏览器中的图像而没有.htaccess文件

  23. 23

    Beta 版应用程序显示在浏览器中,但不在 Google Play 中?

  24. 24

    在我的Symfony 2应用程序中配置基于HTTP浏览器的基本身份验证-不显示HTTP身份验证登录

  25. 25

    为什么我不能在浏览器中运行空白的Cordova应用程序:您可能没有运行此项目所需的环境或操作系统

  26. 26

    从浏览器运行应用程序

  27. 27

    无法阻止浏览器页面在角度应用程序中刷新/重新加载

  28. 28

    简单的Angular JS应用程序未显示在浏览器中

  29. 29

    大量发布请求在浏览器中有效,但在应用程序中无效

热门标签

归档