解决webapp中使用cordova调用本地相册,在ios设备上无法显示图片的问题

anjular.js不能调用原生app相机,遇到通过cordova的插件cordova-plugin-camera来调用

1我们先在项目中引入插件cordova plugin add cordova-plugin-camera把插件安装到项目中

2在html文件中布局点击按钮调用相机或相册关键代码如下:

<div data-role="page">

  <div data-role="header">

  </div>

    <div class=" has-header padding" align="center">
      <p>
        <button class="button button-positive" ng-click="loadTakeImage();">相机拍照</button>
        <button class="button button-calm" ng-click="loadImageLocal();">本地图片</button>
      </p>
    </div>

  <div data-role="content">
    <div class="has-header padding" align="center">
	//注意我们此处通过id=“”来绑定对应的dom
      <img style="display:none;width:240px;height:320px;"  id="myImage" src=""/>
      <img src="" id="myImageLocal" style="display:none;width:240px;height:320px;"/>
    </div>
  </div>
</div>
3在js文件中关键代码如下:
// 1.拍照并显示在屏幕
function loadImage() {
  navigator.camera.getPicture(onLoadImageSuccess, onLoadImageFail, {

    destinationType: Camera.DestinationType.DATA_URL,
    sourceType: Camera.PictureSourceType.CAMERA

  });
}

//拍照成功后回调
function onLoadImageSuccess(imageURI) {

  // var smallImage = document.getElementById('getImageLocal');
  // smallImage.style.display = 'none';
  var smallImage = document.getElementById('myImage');
  smallImage.style.display = 'block';
  smallImage.src = "data:image/jpeg;base64,"+imageURI;
  $log.log("图片链接",imageURI)

}


//2.获取本地图片并显示在屏幕
$scope.loadImageLocal = function () {

  navigator.camera.getPicture(onLoadImageLocalSuccess, onLoadImageFail, {
    destinationType: Camera.DestinationType.DATA_URL,
    sourceType: Camera.PictureSourceType.PHOTOLIBRARY
  });
}

//本地图片选择成功后回调此函数
function onLoadImageLocalSuccess(imageURI) {

  var smallImage = document.getElementById('myImageLocal');
  smallImage.style.display = 'block';
  smallImage.src = "data:image/jpeg;base64,"+imageURI;
  $log.log("图片链接",imageURI)

}
//所有获取图片失败都回调此函数

function onLoadImageFail(message) {

  navigator.notification.alert("操作失败,原因:" + message, null, "警告");

}
注意事项:
destinationType为获取的图片链接格式
其中
Camera.DestinationType.DATA_URL为base64格式,接收时我们通过
 smallImage.src = "data:image/jpeg;base64,"+imageURI;来让html页面识别
这个url(ios推荐实用此方法!)
Camera.DestinationType.FILE_URI为图片本地路径,接收时我们通过
 smallImage.src = imageURI;来让html页面识别
这个url(此方法在安卓设备上正常运行,在ios设备上无法显示图片,ios不允许直接访问路径)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值