在离子模拟器中,所有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'">发布于 2018-12-19 10:02:18
是的,这是所有开发人员提出的最常见的问题。最后我找到了答案,这就是..。
SSL证书足以让网站通过HTTPS进行连接,但要使用像Apps这样的混合应用程序,SSL本身是不够的,您需要花费几百美元的代码签名证书。
另一种选择是使用可以免费创建的自签名证书,这里还可以通过HTTPS连接到离子型web版本,但是编译后,apk文件再次被停止以连接到DB服务器。
下面是使用自签名认证在服务中添加HTTPS端口或HTTP链接的诀窍。
完全按照以下命令执行:
在此之后,停止编译,放松。现在您将找到一个名为platform的文件夹,路径如下所示: project/platforms/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);
}
}
最后
之后,通常的命令jarsiner和and
您应该使用自己签名的证书在SSL的HTTPS端口中运行apk。
https://stackoverflow.com/questions/40147383
复制相似问题