我正在编写一个将请求发送到REST的应用程序。
API调用web浏览器中的工作,但不调用模拟器中的工作,也不调用设备上的工作。
离子CLI 4.4.0
科多瓦8.1.2
我所做的:
我使用android-权限,比如在这个侧方上。
app.modules.ts
import { AndroidPermissions } from '@ionic-native/android-permissions';
@NgModule({
declarations: [
],
imports: [
],
entryComponents: [
],
providers: [
AndroidPermissions
],
bootstrap: [IonicApp]
})
export class AppModule {}api-call.ts
import { AndroidPermissions } from '@ionic-native/android-permissions';
export class ApiCallPage {
constructor(private androidPermissions: AndroidPermissions) {
this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.INTERNET).then(
result => console.log('Has permission?', result.hasPermission),
err => this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.INTERNET)
);
}
}目标设备( AVD管理器中的设备和模拟器)具有API 22 (Android5.1)。
config.xml
<access origin="*" />
<preference name="android-minSdkVersion" value="19" />
<plugin name="cordova-plugin-android-permissions" spec="1.0.0" />
<engine name="android" spec="^7.1.1" />最后一个(引擎名)可能是cordova-android版本,而不必是5.1。在package.json中处于依赖项下,"cordova-android": "^7.1.1"。
...both文件包括(不是手工编写的):
<uses-permission android:name="android.permission.INTERNET" />这是,不是CORS问题,。REST运行在与web浏览器不同的服务器上,它与web浏览器一起工作。
我想我什么都做了。有什么遗漏或不对劲吗?
你要做些什么才能让Ionic (cordova)上网?
更新应用程序信息向我显示该应用程序具有完全网络访问的权限。现在我不知所措了。

在API中,我在启动时记录每个请求。来自设备的应用程序请求没有到达。浏览器中的应用程序到达了。
发布于 2018-11-23 16:57:00
这是一个CORS问题,但不是在API方面,而是在客户端。
在config.xml中<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />解决了我的问题。
对我来说,它是Android5.1& 8.0。
https://stackoverflow.com/questions/53442314
复制相似问题