中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ionic本地相冊、拍照、裁剪、上傳的示例分析

發布時間:2021-07-24 11:23:05 來源:億速云 閱讀:254 作者:小新 欄目:web開發

這篇文章主要介紹ionic本地相冊、拍照、裁剪、上傳的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

網絡上已有的ionic圖片選擇上傳博客碎片化過于嚴重,功能殘缺或者引入了一些不必要的插件。這次以項目為契機,把ionic的圖片選擇、裁剪、上傳整合一下,多圖上傳請戳ionic選擇多張圖片上傳

插件安裝

cordova plugin add cordova-plugin-camera //用于通過相機、相冊選擇圖片并完成裁剪
cordova plugin add cordova-plugin-file-transfer //用于上傳圖片到服務器

將功能封裝為服務

angular.module('starter.services', [])

//文件上傳
.factory('UploadFile', function(Toast) {
 return {
 /**
  * 上傳文件到服務器
  *
  * @param fileUrl 文件路徑
  * @param server 服務器接口
  */
 uploadFile: function(fileUrl, server) {
  document.addEventListener("deviceready", onDeviceReady, false);
  function onDeviceReady() {
  var options = new FileUploadOptions();
  options.fileKey = "BeanYon";
  options.fileName = fileUrl.substr(fileUrl.lastIndexOf('/') + 1);
  options.mimeType = "image/jpeg";
  options.chunkedMode = false;

  var params = {account: localStorage.account};
  options.params = params;

  var ft = new FileTransfer();
  ft.upload(fileUrl, 
     encodeURI(server), 
     success, 
     err, 
     options);
  }

  function success(r){
  Toast.show("設置頭像成功");
  }

  function err(error){
  Toast.show("上傳頭像失敗,請確保網絡正常后再試");
  }
 }
 }
})

//配置單張圖片選擇
.factory('SelectPicture', function(UploadFile, Toast) {
 return {
 /**
  * 從相機或圖庫選擇一張圖片
  * 
  * @param type 選擇類型,0 拍照,1 相冊
  * @param width 目標寬度
  * @param height 目標高度
  * @param scope $scope對象
  */
 chooseSinglePicture: function(type, width, height, scope) {
  document.addEventListener("deviceready", onDeviceReady, false);
  function onDeviceReady() {
  var options = {//相機配置
   targetWidth: width,
   targetHeight: height,
   quality: 100,
   allowEdit: true
  }

  if(type == 1){//圖片源設置為相冊
   options.sourceType = 2;
  }

  navigator.camera.getPicture(
   function(res){
   scope.avatar_src = res;
   scope.$apply();
   localStorage.avatar = res;
   UploadFile.uploadFile(res, "我的服務器地址");//傳遞自己的服務器接口地址
   }, function(res){
   Toast.show("選擇頭像失敗");
   }, options
  );
  }
 },

 /**
  * 從圖庫選擇多張圖片
  */
 choosePictures: function() {
  window.imagePicker.getPictures(function(res){
  alert(res+",success");
  }, function(res){
  alert(res+",failed");
  }, {
  maximumImagesCount: 10, 
  width: 80, 
  height: 80, 
  quality: 80 
  });
 }
 }
});

調用服務

angular.module('starter.controllers', [])
.controller('MyCtrl', function($scope, $state, $ionicActionSheet, UploadFile,Toast, SelectPicture) {
 $scope.avatar_src = "img/default_avatar.jpg";

 /**
 *選擇頭像
 */
 $scope.selectAvatar = function(){
 // 顯示操作表
 $ionicActionSheet.show({
  buttons: [
  { text: '<p >拍照<p>' },
  { text: '<p >從相冊選擇<p>' },
  ],
  buttonClicked: function(index) {
  //設置頭像
  SelectPicture.chooseSinglePicture(index, 120, 120, $scope);
  return true;
  }
 });
 }
})

以上是“ionic本地相冊、拍照、裁剪、上傳的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阆中市| 洞口县| 达孜县| 宜州市| 新化县| 且末县| 湛江市| 宝应县| 江陵县| 垫江县| 赤峰市| 上饶县| 博兴县| 铜山县| 江都市| 海城市| 利辛县| 鄱阳县| 七台河市| 西盟| 屏边| 乌鲁木齐县| 浪卡子县| 康平县| 博野县| 扶余县| 吉木萨尔县| 昌图县| 共和县| 普宁市| 本溪| 乐陵市| 中西区| 平阴县| 酉阳| 公安县| 浪卡子县| 张北县| 繁昌县| 德格县| 清徐县|