从Playstore下载的我的应用无法调用网络服务 [英] My App downloaded from the playstore fails to call web service
问题描述
我最近开发了一个cordova应用,该应用已上传到Google Play商店.我在手机和模拟器上测试了这个应用程序数周,一切正常.但是,当我从Playstore下载相同的应用程序时,它无法调用任何Web服务,因此不会显示任何内容.
I recently developed a cordova App that is uploaded to google play store. I tested this app on my mobile and simulators for weeks and everything works fine. However, when i download the same app from the playstore it fails to call any of the web services and such doesn't display any content.
科尔多瓦:9.0.1
cordova : 9.0.1
npm:6.10.1
npm : 6.10.1
cordova-android:7.0.0
cordova-android : 7.0.0
我遍历了每一行代码,但似乎找不到问题,我将对window.localStorage
的每个调用替换为全局变量,只是为了解决我认为的问题./p>
I have gone through every line of code and i can't seem to find the problem, i replaced every single call to window.localStorage
to a global variables just to be able to fix what i thought would be the problem.
<?xml version='1.0' encoding='utf-8'?></code>
<widget defaultlocale="en-US" id="com.test.fr" version="1.0.6" android-versionCode="100050" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0" xmlns:vs="http://schemas.microsoft.com/appx/2014/htmlapps">
<content src="index.html" />
<access origin="*" />
<preference name="SplashScreen" value="screen" />
<preference name="windows-target-version" value="8.1" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<platform name="android">
<allow-intent href="market:*" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
</platform>
<platform name="android">
<icon src="www/res/icon/android/fr_mobile_icon.png" density="ldpi" />
<icon src="www/res/icon/android/fr_mobile_icon.png" density="mdpi" />
<icon src="www/res/icon/android/fr_mobile_icon.png" density="hdpi" />
<icon src="www/res/icon/android/fr_mobile_icon.png" density="xhdpi" />
</platform>
<plugin name="cordova-plugin-device" version="2.0.2" />
<plugin name="cordova-plugin-websql" version="0.0.10" />
<plugin name="cordova-plugin-dialogs" version="2.0.1" />
<plugin name="cordova-plugin-file" version="4.3.3" />
<preference name="target-device" value="handset" />
<preference name="BackupWebStorage" value="local" />
<preference name="android-targetSdkVersion" value="28" />
<preference name="android-minSdkVersion" value="17" />
<preference name="android-maxSdkVersion" value="29" />
<preference name="AndroidPersistentFileLocation" value="Compatibility" />
<plugin name="cordova-custom-config" spec="5.1.0" />
</widget>
最糟糕的部分....设备上没有显示错误,只是无法正常工作.
Worst part.... No error shown on the device, it just doesn't work.
推荐答案
尝试将android:usesCleartextTraffic="true"
添加到AndroidManifest.xml
中的<application>
或使用config.xml
Try adding android:usesCleartextTraffic="true"
to the <application>
in the AndroidManifest.xml
or as below using config.xml
<platform name="android">
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
<application android:usesCleartextTraffic="true" />
</edit-config>
</platform>
android:usesCleartextTraffic 指示应用程序是否打算使用明文网络流量,例如明文HTTP.默认值 面向API级别27或更低的应用的值是"true".的应用 目标API级别28或更高级别默认为"false". 更多信息
android:usesCleartextTraffic Indicates whether the app intends to use cleartext network traffic, such as cleartext HTTP. The default value for apps that target API level 27 or lower is "true". Apps that target API level 28 or higher default to "false". More info
明文是任何传输或存储的,不是
加密或打算加密.当应用与之通信时
使用明文网络流量(例如HTTP)的服务器,它可以
会增加窃听和篡改内容的风险,这就是为什么在最新的Android设备中,默认情况下将其设置为false
.
Cleartext is any transmitted or stored information that is not
encrypted or meant to be encrypted. When an app communicates with
servers using a cleartext network traffic, such as HTTP, it could
raise a risk of eavesdropping and tampering of content which is why in latest Android devices, it's set to false
by default.
这篇关于从Playstore下载的我的应用无法调用网络服务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!