我做了这个教程。
一切都可以,但是当从画廊中选择图像时,图像uri
通过其属性分配给img
元素:src
(img[src]
(。然后将图像显示为损坏。
我记录了图像URI
并得到以下内容:
content://com.android.providers.media.documents/document/image%3A1792
然后,仅用于测试,我用真实的路径覆盖了url
,并且也损坏了图像。这是我尝试的真正路径:
/storage/9016-4EF8/DCIM/Camera/20170422_202334.jpg
那么,我的问题是:如何使用其路径在ionic2 UI
上显示图像?
也许问题是嵌入式webview
(如普通浏览器((Ionic/Cordova
(没有权限出于安全原因显示本地媒体吗?在这种情况下,应该是解决此问题的方法或插件?
在摄像机子示例上方的教程上工作正常,因为分配给图像元素的是base64
格式的图像的内容,但是我想使用path
,因为我认为这很清楚。
我尝试了以下链接中的一些建议,但没有成功。也许是一个不适合当前平台的旧链接(或建议还可以,我犯了一些错误(。https://forum.ionicframework.com/t/no-local-image-showing-in-view-view-on-device/30647
在这里您有一些我的系统的信息:
$ npm -v
3.10.10
$ cordova -v
6.5.0
$ ionic info
Your system information:
Cordova CLI: 6.5.0
Ionic CLI Version: 2.2.3
Ionic App Lib Version: 2.2.1
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Windows 10
Node Version: v6.10.2
Xcode version: Not installed
关于如何获得此工作的任何想法?
此问题是由于在Android中使用sourceType: CAMERA. PHOTOLIBRARY
所致,URI无法在IMG SRC属性中显示。要解决此问题,请使用以下代码来纠正图像路径。
Camera.getPicture(options).then((imagePath) => {
// Correcting android photolibrary image page
this.nativeFilePath = imagePath;
if (this.pl.is('android') && sourceType === Camera.PictureSourceType.PHOTOLIBRARY) {
FilePath.resolveNativePath(imagePath)
.then(filePath => {
this.nativeFilePath = filePath;
let currentName = imagePath.substring(imagePath.lastIndexOf('/') + 1, imagePath.lastIndexOf('?'));
});
} else {
var currentName = imagePath.substr(imagePath.lastIndexOf('/') + 1);
}
}, err => {
// this.presentToast('upload image fail.');
});
希望这会有所帮助!