【发布时间】:2018-05-09 08:16:58
【问题描述】:
我目前正在为 iOS 构建一个 SAPUI5 Cordova 应用程序。我正在使用 Cordova 8、iOS 11.0.3 和 xcode 9.2 问题是我的 Ajax 调用似乎都没有工作(它们无限期挂起,甚至没有返回错误代码)。这似乎是一个常见问题,因为已经有很多围绕这个问题的线程,但是这些线程中提出的解决方案似乎都不适用于我的应用程序。 到目前为止,我已经尝试了以下方法:
在 index.html 的 meta 标签中设置 CSP:
<meta http-equiv="Content-Security-Policy" content="default-src * data: gap: https: 'unsafe-inline' 'unsafe-eval'; style-src 'unsafe-inline' *; media-src * 'unsafe-inline'; connect-src * 'unsafe-inline'" />
在 xcode 项目的 info.plist 文件中设置 App Transport Security 设置:
导入cordova-whitelist-plugin并设置访问源、allow-intent和allow-navigation到*:
<?xml version='1.0' encoding='utf-8'?>
<widget id="opensap.myapp.eventapp" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>eventapp2</name>
<description />
<author email="dev@sap.com" href="http://www.sap.com">SAP Product and Innovation</author>
<content src="webapp/index.html" />
<plugin name="cordova-plugin-device" spec="^2.0.2" />
<plugin name="cordova-plugin-network-information" spec="^2.0.1" />
<plugin name="cordova-plugin-battery-status" spec="^2.0.2" />
<plugin name="cordova-plugin-geolocation" spec="^2.4.3" />
<plugin name="cordova-plugin-dialogs" spec="^2.0.1" />
<plugin name="cordova-plugin-vibration" spec="^3.1.0" />
<plugin name="cordova-plugin-splashscreen" spec="^3.0.0" />
<plugin name="cordova-plugin-console" spec="^1.1.0" />
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<allow-navigation href="*" requires-certificate-transparency="false" requires-forward-secrecy="false" />
<platform name="android">
<icon density="ldpi" src="res/icon/icon_android_36.png" />
<icon density="mdpi" src="res/icon/icon_android_48.png" />
<icon density="hdpi" src="res/icon/icon_android_72.png" />
<icon density="xhdpi" src="res/icon/icon_android_96.png" />
<splash density="land-ldpi" src="res/screen/android/splash-land-ldpi.png" />
<splash density="port-ldpi" src="res/screen/android/splash-port-ldpi.png" />
<splash density="land-mdpi" src="res/screen/android/splash-land-mdpi.png" />
<splash density="port-mdpi" src="res/screen/android/splash-port-mdpi.png" />
<splash density="land-hdpi" src="res/screen/android/splash-land-hdpi.png" />
<splash density="port-hdpi" src="res/screen/android/splash-port-hdpi.png" />
<splash density="land-xhdpi" src="res/screen/android/splash-land-xhdpi.png" />
<splash density="port-xhdpi" src="res/screen/android/splash-port-xhdpi.png" />
</platform>
<platform name="ios">
<icon height="57" src="res/icon/icon_ios_57.png" width="57" />
<icon height="72" src="res/icon/icon_ios_72.png" width="72" />
<icon height="114" src="res/icon/icon_ios_114.png" width="114" />
<icon height="144" src="res/icon/icon_ios_144.png" width="144" />
<splash height="480" src="res/screen/ios/Default~iphone.png" width="320" />
<splash height="960" src="res/screen/ios/Default@2x~iphone.png" width="640" />
<splash height="1024" src="res/screen/ios/Default-Portrait~ipad.png" width="768" />
<splash height="2048" src="res/screen/ios/Default-Portrait@2x~ipad.png" width="1536" />
<splash height="768" src="res/screen/ios/Default-Landscape~ipad.png" width="1024" />
<splash height="1536" src="res/screen/ios/Default-Landscape@2x~ipad.png" width="2048" />
<splash height="1136" src="res/screen/ios/Default-568h@2x~iphone.png" width="640" />
<splash height="1334" src="res/screen/ios/Default-667h.png" width="750" />
<splash height="2208" src="res/screen/ios/Default-736h.png" width="1142" />
</platform>
<platform name="windows" />
<platform name="android">
<preference name="Fullscreen" value="false" />
<preference name="Orientation" value="default" />
<preference name="ShowTitle" value="false" />
<preference name="LogLevel" value="VERBOSE" />
<preference name="LoadUrlTimeout" value="80000" />
<preference name="UrlScheme" value="" />
<preference name="android-minSdkVersion" value="16" />
</platform>
<preference name="sap-development-version" value="0.0.1" />
<preference name="hybridapprevision" value="1" />
<preference name="SplashScreen" value="screen" />
<preference name="SplashScreenDelay" value="5000" />
<icon src="res/icon/icon_512.png" />
<plugin name="com.unarin.cordova.beacon" spec="https://github.com/petermetz/cordova-plugin-ibeacon.git" />
<plugin name="cordova-plugin-whitelist" spec="^1.3.3" />
<engine name="android" spec="^6.2.3" />
<engine name="ios" spec="^4.5.4" />
关于如何让它发挥作用的任何提示或建议?
编辑:尝试在域级别设置异常,但这也不起作用:
【问题讨论】: