我正在尝试从嘲笑中收到一些简单的json。
反应本机提取功能:
getMemberDomainList = async (name) => {
try {
let response = await fetch('https://5c9cc9ed3be4e30014a7d287.mockapi.io/api/domain', {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
});
let responseJson = await response.json();
return responseJson;
} catch (error) {
console.error(error);
}
}
Run Code Online (Sandbox Code Playgroud)
我已经在Windows上的Chrome中测试了该地址,它返回了预期的模拟数据。但是在我的android手机上调用该函数时,出现此错误

来自远程调试器的错误
...\node_modules\react-native\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:2348 TypeError: Network request failed
at XMLHttpRequest.xhr.onerror (...\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:4337)
at XMLHttpRequest.dispatchEvent (...\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:10760)
at XMLHttpRequest.setReadyState (...\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:10511)
at XMLHttpRequest.__didCompleteResponse (...\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:10343)
at ...\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:10449
at RCTDeviceEventEmitter.emit (...\Libraries\Components\DrawerAndroid\DrawerLayoutAndroid.android.js:11)
at MessageQueue.__callFunction (...\Libraries\ART\ReactNativeART.js:362)
at blob:http://localhost:8081/79251787-d190-4650-8040-23d091c08738:2334
at MessageQueue.__guard (...\Libraries\ART\ReactNativeART.js:312)
at MessageQueue.callFunctionReturnFlushedQueue (...\Libraries\ART\ReactNativeART.js:139)
Run Code Online (Sandbox Code Playgroud)
我还在我的应用程序中运行一个WebView,该WebView指向一个Web URL,它可以完美加载,因此我确定手机具有Internet许可和访问权限等。
正如我在这篇文章中发现的那样。
我想更新我的网络安全配置以允许来自我的 Android 模拟器的个人存储的根证书。但是当我这样做时,我无法再构建我的应用程序。错误信息:
无法加载脚本。确保您正在运行 Metro 服务器(运行“react-native-start”)或者您的捆绑包“index.android.bundle”已正确打包以供发布。
当我删除android:networkSecurityConfig="@xml/network_security_config"它时一切都再次正常运行..
有人知道该怎么办吗?或者有其他方法来更改安全配置?
我创建了一个应用程序,该应用程序使用Ionic Native HTTP成功连接到我们的服务器,并使用Samsung Galaxy J7 Prime OS版本的棉花糖和尚不在Android Pie下的其他几个软件对其进行了测试。出于某种原因,当我在Android Pie下的设备上对其进行测试时,它将无法再使用,并且我收到了CORS政策问题。有人遇到过类似的问题吗?有没有解决方法?不幸的是,不能在服务器配置中进行修改。我还阅读了一些有关代理的解决方案,但不确定如何实现它们。
版本:cordova-plugin-advanced-http:2.1.1 ionic-native / http:5.8.0
我使用 HTML5 和 Javascript 开发了cordova 跨平台应用程序。但是最近我在android上遇到了一些问题。
以前我使用 Cordova 7,其中 android 版本为 6.3,支持 android API 16 到 26。但根据新的谷歌规则,从 2019 年 8 月开始,所有应用程序都必须针对 Android API 28,即 Android 8 和 Android 9。
Cordova 的最新版本是支持 Android 8 的 Cordova 9。Cordova 没有发布任何支持 Android 9 的版本。
因此,要开发面向 API 28 的应用程序,我必须使用 Android 8。但是我在应用程序方面遇到了一些问题。以前我的应用程序运行良好。当我使用 Cordova 9 使用 Android 8 开发应用程序时,它在所有 Android 8 及以下版本的手机上都能正常工作,但在 Android 9 中显示错误。特别是 AJAX 请求。
我正在使用 http(不是 https)向服务器发送 AJAX 请求。在一些博客中,我看到它可能会导致错误。但是我看不到任何修复方法,目前我无法选择使用 https。
另一种方法是设置<preference name="android-targetSdkVersion" value="26" />哪个在所有 android 版本(6~9)中都可以正常工作,但是当我在 Google Play 商店中使用此配置上传时,它会显示警告以将目标 API 更新为 28。 …
您好,我正在研究离子应用程序。执行此命令ionic cordova build android --prod --release。它确实生成了未签名的 apk 文件,但它也在 network_security_config 文件中显示错误。
错误
app\src\main\res\xml\network_security_config.xml:4: Error: Missing includeSubdomains attribute [NetworkSecurityConfig]
<domain>localhost</domain>
我尝试了多种解决方案,但对我不起作用。
参考
如何在 Android (9) Pie 中允许所有网络连接类型 HTTP 和 HTTPS?
Cordova 如何支持 Android 7.0 引入的网络安全配置?
有人可以帮我解决这个问题吗?
我已经浏览了这个问题链接,我进行了后续更改,但仍然无法解决问题。仍然给我同样的错误。有人可以帮我吗。提前致谢 这是我来自 config.xml 的一段代码
<widget id="com.farm.fork" version="0.0.1"
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" />
<application android:networkSecurityConfig="@xml/network_security_config" />
</edit-config>
<resource-file src="resources/android/xml/network_security_config.xml" target="app/src/main/res/xml/network_security_config.xml" />
Run Code Online (Sandbox Code Playgroud)
network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">localhost</domain>
</domain-config>
</network-security-config>
Run Code Online (Sandbox Code Playgroud)
AndroidManifest.xml
<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="0.0.1" package="com.farm.fork" xmlns:android="http://schemas.android.com/apk/res/android">
<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
<uses-permission android:name="android.permission.INTERNET" />
<application android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:networkSecurityConfig="@xml/network_security_config" android:supportsRtl="true" android:usesCleartextTraffic="true">
<activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:windowSoftInputMode="adjustResize">
<intent-filter android:label="@string/launcher_name">
<action android:name="android.intent.action.MAIN" …Run Code Online (Sandbox Code Playgroud)