【发布时间】:2018-12-26 06:41:29
【问题描述】:
在 web 浏览器中一切正常,但在真实设备 (Android) 中运行时无法在 debug.apk 中运行。
我在真实设备中没有从 https 服务器得到任何响应,但在浏览器中我得到响应并在 ion-label 中显示数据。
对于浏览器:
ionic serve --lab
对于安卓调试apk:
ionic cordova build android
config.xml:
<?xml version='1.0' encoding='utf-8'?>
<widget id="io.ionic.starter" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>NABH</name>
<description>An awesome Ionic/Cordova app.</description>
<author email="hi@ionicframework" href="http://ionicframework.com/">Ionic Framework Team</author>
<content src="index.html" />
<allow-intent href="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<allow-navigation href="*" />
<access origin="*" />
<allow-navigation href="http://*/*" />
<allow-navigation href="https://*/*" />
<allow-navigation href="data:*" />
<preference name="ScrollEnabled" value="false" />
<preference name="android-minSdkVersion" value="19" />
<preference name="BackupWebStorage" value="none" />
<preference name="SplashMaintainAspectRatio" value="true" />
<preference name="FadeSplashScreenDuration" value="300" />
<preference name="SplashShowOnlyFirstTime" value="false" />
<preference name="SplashScreen" value="screen" />
<preference name="SplashScreenDelay" value="300" />
<preference name="loadUrlTimeoutValue" value="600000" />
<preference name="AutoHideSplashScreen" value="false" />
<preference name="orientation" value="portrait" />
<platform name="android">
<allow-intent href="market:*" />
<icon density="ldpi" src="resources/android/icon/drawable-ldpi-icon.png" />
<icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" />
<icon density="hdpi" src="resources/android/icon/drawable-hdpi-icon.png" />
<icon density="xhdpi" src="resources/android/icon/drawable-xhdpi-icon.png" />
.......
按照一些教程链接并在index.html文件中添加以下行,
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
ionic.config.json 文件:
{
"name": "NXXX",
"app_id": "",
"type": "ionic-angular",
"integrations": {
"cordova": {}
},
"proxies": [
{
"path": "/api",
"proxyUrl": "https://www.testapi.com/mobileapi"
}
]
}
ts 文件:
return new Promise(resolve => {
const myheader = new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded')
this.http.get("https://www.testapi.com/mobileapi",{headers:myheader}).subscribe(data => {
resolve(data);
}, err => {
console.log(err);
});
});
环境信息: cli 包:(/usr/local/lib/node_modules)
@ionic/cli-utils : 1.19.2
ionic (Ionic CLI) : 3.20.0
全局包:
cordova (Cordova CLI) : 8.0.0
本地包:
@ionic/app-scripts : 3.1.9
Cordova Platforms : android 7.0.0
Ionic Framework : ionic-angular 3.9.2
系统:
Android SDK Tools : 26.1.1
Node : v8.11.1
npm : 5.6.0
OS : macOS High Sierra
Xcode : Xcode 7.2.1 Build version 7C1002
不过,我仍然卡在真实设备中的 api 响应中。请让我知道我将如何在 android 设备中获得 JSON 响应?
【问题讨论】:
标签: angular typescript cordova ionic-framework