wap2app 无法读取本地图片地址,所以转换到了RemoteURL 地址
var cmr = plus.camera.getCamera();
cmr.captureImage(function(p) {
plus.io.resolveLocalFileSystemURL(p, function(entry) {
var localurl = entry.toLocalURL();
var remoteUrl = entry.toRemoteURL();
getImgData(remoteUrl );
});
}, function(error) {
console.log("---" + "Capture image failed: " + error.message);
}, {filename:"_doc/camera/"}
);
function getImgData(path) {
var orientation;
var mime_type = "image/jpeg";
var image = new Image();
image.setAttribute('crossOrigin', 'anonymous');
image.src = path;
image.onload = function() {
alert(1111); //程序走不到这里,这里是用来处理图片方向和图片大小,最后转换base64发送服务端用
}
}
4 个回复
Rudy001 (作者)
没人解决过吗
回梦無痕 - 暂停服务
顺序最好换一下,先监听load。
我之前做过类似的,大概是把图片缓存到本地,然后下次请求时直接加载本地图片,其中有一些逻辑需要获取图片高度,当时遇到的一个坑是,onload有时候不会触发。最后是直接监听img对象的高度实现了获取img的高度。
不过以上经验是移动APP中的,不是wap2app,你需要先检验wap2app中是否能够加载到你的本地图片。
Rudy001 (作者)
谢谢回答,和顺序无关已测试过, 缓存也试过加随机数,wap2app加载不了本地图片,我是转换到了remoteUrl 显示的
2018-03-20 14:27
回梦無痕
如果确定remoteUrl之后可以加载图片,那就是触发不了onload事件咯,只能换方法了。
2018-03-20 14:31
Rudy001 (作者)
换了个方法,用api里的压缩处理图片又有新问题
在IOS下无法获取压缩后的base64图片数据获取到的是null, android正常
回梦無痕
我是直接用了画布来实现压缩图片和转base64的,画布能一步到位。
2018-03-20 17:18
Rudy001 (作者)
回复 回梦無痕:我是wap2app, 不能加载本地图片,IOS上面不能跨域
2018-03-20 17:21
回梦無痕
回复 Rudy001:wap2app里是可以的,我已经实现过的
2018-03-20 17:31
Rudy001 (作者)
问题解决了,Android和IOS都正常,去掉协议头,不知道原因
1***@163.com
能贴一下完整的解决的代码吗,谢谢了
2018-09-17 14:57