解决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不允许直接访问路径)
 
  
 
  
 
  

你可能感兴趣的:(iOS码农)