【发布时间】:2017-06-12 07:08:42
【问题描述】:
有人知道可能是什么问题吗?在过去的几周里,我一直在试图弄清楚为什么我的代码只能在 iOS 上运行,而不能在 Android 设备上运行。任何想法都会受到高度赞赏,因为我没有选择。
在 android 设备上它显示发送文件,但在服务器上我没有收到任何信息(图片也没有其余参数)。另一方面,在 iOS 上一切正常,服务器也一样。
我的代码:
home.html:
<button ion-button color="dark" (click)="takePhoto()">Open camera </button> <img [src]="imageURL" *ngIf="imageURL" /> <br>imageURL={{imageURL}} <br><button ion-button color="dark" (click)="upload()">Upload</button>
home.ts:
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
imageURL: any;
myInput: string;
cameraUrl: string;
constructor(public navCtrl: NavController) {
}
takePhoto(){
Camera.getPicture().then((imageData) => {
this.imageURL = imageData;
}, (err) => {
console.log(err);
});
}
upload(){
var ft = new Transfer();
var options = {
fileKey: 'file',
fileName: 'filename.jpg',
params:{operatiune:'uploadpoza'}
}
ft.upload(this.imageURL,encodeURI("https://www.myserver.com/test.php"),options)
.then((data) => {
// success
alert("image send:"+this.imageURL);
}, (err) => {
// error
alert("err: "+JSON.stringify(err));
})
}
}
我通过两种方式检查了错误:
案例一:
我上传的代码中有 2 个警报: 一种。成功时的消息:alert("image send:"+this.imageURL); 湾。错误消息:alert("err: "+JSON.stringify(err));
就我而言,我注意到只有第一条消息出现,即 代码执行正确。
案例 2:
我已通过电缆将手机连接到笔记本电脑。 要启动应用程序,我输入了“Node.js-Command-Prompt”命令“ionic run 安卓”。 我打开 Chrome 浏览器并在地址栏中输入 “铬://检查/#devices”。然后为我的应用选择“INSPECT-option”,然后 弹出控制台。控制台没有显示任何错误。 这是测试它的正确方法,还是我应该尝试不同的方法?
我打印了“ft.upload”成功时收到的对象“数据” 功能。结果是:
data.response=
data.responseCode=200
data.bytesSent=411240
对我来说,这意味着信息被发送到服务器。
还有一点: - 我运行了不同类型的测试:向两台服务器发送信息 使用 HTTPS 和 HTTP - 我尝试添加 trustAllHosts=true 并在另一个测试中 trustAllHosts=false
而且每次都出现同样的问题:在 iOS 上有效,但在 android 上失败
【问题讨论】: