我按下按钮时会执行一些数据请求。因此,在我的按钮所在页面的ts文件中,我在我的提供程序中调用该函数。
当我编译我的Android平台应用程序(使用ionic cordova build --release android
生成apk,然后我签署apk,对齐并安装它)时,主要问题出现了。在那种情况下,当我按下按钮没有任何反应时,我调试了代码(我添加了一些警报),但只执行了函数的第一行(我添加的警报),从不返回任何内容。
但..如果我使用以下命令运行应用程序:ionic cordova run android -l
和ionic serve -l
。它就像一个魅力(提供者返回请求的数据)
我的意思是,只有当我生成APK以将其安装到我的设备中时才会出现问题
我也试过HttpClient,但问题仍然存在。
我的提供商的代码是:
Search(path): Promise<any> {
// ------------- The alert is shown
return this.http.get(path)
.map(res => res.json())
.toPromise()
.then(
response => {
// ------------- The alert is not shown
if (typeof response.user.name !== "undefined") {
this.storage.set('users', JSON.stringify(response));
return response;
} else {
return null;
}
},
error => {
// ------------- The alert is not shown
return null;
});
}
我也试过这样的事情:
Search(path): Promise<any> {
// ------------- The alert is shown
return null;
}
但是,在这种情况下,永远不会执行返回行,只显示警报。
当我在按钮所在的页面中调用我的提供者函数时的代码:
this.APIService.Search(final_path).then(res => {
if (res) {
this.storage.get('users').then(responseJson => {
if (responseJson) {
this.navCtrl.push(ObtenerPage);
}
});
} else {
this.presentToast("Bad request");
}
});