升级到Cordova Android 8.0后,我发现尝试连接到http://目标时出现了错误。
为什么会这样,我如何解决这个问题?
这里的Cleartext代表未加密的信息。自Android 9以来,建议应用程序调用HTTPS API以确保没有Ves丢失。
但是,如果我们仍然需要调用HTTP API,我们可以执行以下操作:
平台:Ionic 4
在项目根/资源/android/xml下创建一个名为:network_security_config.xml的文件
添加以下行:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain>ip-or-domain-name</domain>
</domain-config>
</network-security-config>
现在在项目根/config.xml中,更新以下行:
<platform name="android">
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android">
<application android:usesCleartextTraffic="true" />
<application android:networkSecurityConfig="@xml/network_security_config" />
</edit-config>
... other statements...
现在应该可以了。
config.xml有两件事需要纠正,所以正确的答案应该是添加xmls: android:
<widget id="com.my.awesomeapp" version="1.0.0"
xmlns="http://www.w3.org/ns/widgets"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:cdv="http://cordova.apache.org/ns/1.0">
加上编辑配置以允许:
<platform name="android">
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
<application android:usesCleartextTraffic="true" />
</edit-config>
</platform>
如果避免了步骤1,则出现错误:unbound prefix。将出现
Cordova Android平台中的默认API级别已升级。在Android 9设备上,现在默认情况下禁用明文通信。
要再次允许明文通信,请将应用程序上的android:usesCleartextTraffic标签设置为true:
<platform name="android">
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
<application android:usesCleartextTraffic="true" />
</edit-config>
</platform>
如注释中所述,如果您之前没有定义android
XML命名空间,您将在构建期间收到一个错误:未绑定前缀
。这表明您需要将其添加到同一config.xml
中的小部件
标记中,如下所示:
<widget id="you-app-id" version="1.2.3"
xmlns="http://www.w3.org/ns/widgets"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:cdv="http://cordova.apache.org/ns/1.0">
我正在尝试让相机功能正常工作。我正在连接的三星galaxy平板电脑上进行测试。应用程序成功启动,但导航器。照相机getpicture不会启动相机。你能帮忙吗? 以下是我遵循的步骤:我在(Windows 7)上使用以下步骤创建了cordova hello项目: A部分:(设置cordova)(此处答案的步骤):
我已经安装了最新的构建工具;29.0.2.还是说没有安装构建工具 C:\用户\用户\下载\android-dio-\android-dios\bin\runnerw.exeC:\用户\用户\AppData\漫游\npm\cordova.cmd运行android检查JavaJDK和Android SDK版本ANDROID_SDK_ROOT=未定义(推荐设置)ANDROID_HOME=C:\用户\用户
嗨,我运行ionic命令时出现以下错误()。任何线索都将不胜感激。我的Java是9.0.1,错误消息对我来说没有意义。请提出你的想法。 ANDROID_HOME=C:\程序文件(x86)\Android\android-sdkJAVA_HOME=C:\程序文件\Java\jdk-9.0.1错误:JDK 1.8或更高版本的需求检查失败 [错误]运行科尔多瓦运行Android时出错(退出代码 1)。
我可以从设备上发出GET请求,没有问题。我也可以使用POST登录(接收302 Found响应)。 来自Chrome的请求得到了完美的处理。 我正在使用Spring/Tomcat。我已经在我的tomcat web.xml中添加了CORS过滤器,并且在我的CORDova config.xml中添加了allow-origins*。 科尔多瓦请求 除了来自Chrome的请求中的这些行以外,日志是相同的:
以下是我在检查需求时得到的信息: 以下是我在尝试构建时得到的结果: 我已将ANDROID\u HOME的环境变量设置为C:\Users\Ben\AppData\Local\ANDROID\Sdk,将JAVA\u HOME设置为C:\Program Files\JAVA\jdk-14.0.2,并将添加的C:\Program Files\JAVA\jdk-14.0.2\bin、Sdk工具、Sdk平台工
我试图更新我的网站从使用Laravel 5.4到Laravel 7.3。在大多数情况下,它是有效的,但看起来我的自定义门面由于某种原因不起作用... 无论何时使用一个,我都会得到以下错误。。。 这里是相关文件... 应用\助手\MyLogHelper.php 应用\提供商\MyLogServiceProvider.php App\Facades\MyLog。php 在app.php.... 提供商