Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Ionic Cordova文件上载错误:不允许加载本地资源_Android_Cordova_Ionic Framework_Mobile - Fatal编程技术网

Android Ionic Cordova文件上载错误:不允许加载本地资源

Android Ionic Cordova文件上载错误:不允许加载本地资源,android,cordova,ionic-framework,mobile,Android,Cordova,Ionic Framework,Mobile,我是爱奥尼亚的新手,我正在尝试上传从存储在Android文件系统中的摄像头拍摄的图像: var ft = new FileTransfer(); console.log('Uploading: ' + fileURL); ft.upload(fileURL, encodeURI("http://192.168.192.62:3000/api/meals/picture"), pictureUploaded, function(error) { consol

我是爱奥尼亚的新手,我正在尝试上传从存储在Android文件系统中的摄像头拍摄的图像:

var ft = new FileTransfer();
console.log('Uploading: ' + fileURL);
ft.upload(fileURL,
  encodeURI("http://192.168.192.62:3000/api/meals/picture"),
  pictureUploaded,
  function(error) {
    console.err(error);
    $ionicLoading.show({template: 'Ooops error uploading picture...'});
    setTimeout(function(){$ionicLoading.hide();}, 3000);
  },
  options);
  
var pictureUploaded = function() {
  console.log('uploaded!');
  $ionicLoading.hide();
};
fileUrl指向一个现有的图像:file:///data/data/com.ionicframework.nutrilifemobile664547/files/Q2AtO1462636767466.jpg

在chrome://inspect/#devices console I收到以下错误,由于该错误,文件选项也未正确发送,这是错误(不允许加载本地资源):

Cordova版本:6.1.1

爱奥尼亚版本:1.7.14

当您将“livereload”选项与爱奥尼亚一起使用时,会发生这种情况


尝试在正常模式下运行

可能太晚了,但。。。您可以使用File将本机路径转换为blob,然后使用URL.createObjectURL(blob)将blob转换为URL,并向html元素传递/设置为src。这对于生产环境是不必要的,但您可以将其用于使用-lc进行开发。它可能会工作

另一个可能的原因是您安装了webview插件(类似或只是)。此外,这也不允许使用
cdvfile://
协议。

2018年12月07日

这是我在爱奥尼亚
3.9.2
app上使用的版本

删除最新版本的
webview
,然后:

i、 e.
ionic cordova插件添加cordova插件ionic-webview@1.2.1


注意:此版本适用于
normalizeURL()
方法。

对于ionic webview>3.x,您必须使用convertFileSrc()方法。 例如,如果您有一个myURL局部变量,如file://或/storage

let win: any = window; // hack ionic/angular compilator
var myURL = win.Ionic.WebView.convertFileSrc(myURL);

您是否能够使用任何文件资源管理器查看该文件?在许多情况下,特定于应用程序的数据无法在应用程序外部访问。你能尝试存储图像externalRootDirectory并再试一次吗?@Marcos,你解决了这个问题吗?@BohdanZ-Hi,事实上我刚刚发现在使用livereload选项时会发生这种情况,即“ionic run android-lc”。在本例中,插件似乎在计算机的实际文件系统中进行搜索,而不是在设备中进行搜索。。所以为了避免我只是在没有-lc选项的情况下运行它。。。这不是最优的,我们失去了chrome inspect支持,但我无法找到使用-lc选项绕过问题的方法。@Marcosmia是的,我也发现了它并使用了相同的解决方案,但这个解决方案不适合使用。感谢您的回复。我没有使用ionic,但我仍然看到cordova android 6.3.0使用纯cordova项目时出现此错误。有什么想法吗?如果您查看我上面问题的评论,您会注意到我们已经得出结论,问题是这不是问题的正确答案或解决方案,我想让这个工作,仍然能够正确使用-lc选项和/或能够使用chrome inspect。我想这个答案可能适用于我。解决方法是什么?我使用的是ionic webview 2.4.1,这个解决方案对我很有效。