91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

如何實現微信JS-SDK選取手機照片上傳的功能

發布時間:2021-02-19 14:52:11 來源:億速云 閱讀:145 作者:小新 欄目:移動開發

這篇文章給大家分享的是有關如何實現微信JS-SDK選取手機照片上傳的功能的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

項目中遇到需要選取照片上傳的需求,因為網頁運行在微信的瀏覽器里面,所以用微信的 js-sdk 提供的選取照片功能,來進行項目開發。實際開發中需要用到微信web開發者工具。

1.配置微信JS-SDK相關文件

1)、JSSDk使用最新的1.2.0版本:https://res.wx.qq.com/open/js/jweixin-1.2.0.js。

  ios網頁開發適配問題:

  變化:1.2.0以下版本的JSSDK不再支持通過使用chooseImage api返回的localld以如:"img src=wxLocalResource://50114659201332”的方式預覽圖片。

  適配建議:直接將JSSDK升級為1.2.0最新版本即可幫助頁面自動適配,但在部分場景下可能無效,此時可以使用getLocalImgData 接口來直接獲取數據。

2)、jsapiSign.js文件:

/**
 * 使用jssdk接口的頁面,必須引用該文件
 * actionUrl:后臺服務請求地址
 * url:微信jssdk授權頁面地址
 */
$.post("/getJsapiSign", {'url':location.href.split('#')[0]}, function(data) {
 wx.config({
 debug : false, // 開啟調試模式,調用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在pc端打開,參數信息會通過log打出,僅在pc端時才會打印。
 appId : data.appid, // 必填,公眾號的唯一標識
 timestamp : data.timestamp, // 必填,生成簽名的時間戳
 nonceStr : data.noncestr, // 必填,生成簽名的隨機串
 signature : data.signature,// 必填,簽名,見附錄1
 jsApiList : [ 'checkJsApi',
  'onMenuShareTimeline',
  'onMenuShareAppMessage',
  'onMenuShareQQ',
  'onMenuShareWeibo',
  'hideMenuItems',
  'showMenuItems',
  'hideAllNonBaseMenuItem',
  'showAllNonBaseMenuItem',
  'translateVoice',
  'startRecord',
  'stopRecord',
  'onRecordEnd',
  'playVoice',
  'pauseVoice',
  'stopVoice',
  'uploadVoice',
  'downloadVoice',
  'chooseImage',
  'previewImage',
  'uploadImage',
  'downloadImage',
  'getNetworkType',
  'openLocation',
  'getLocation',
  'hideOptionMenu',
  'showOptionMenu',
  'closeWindow',
  'scanQRCode',
  'chooseWXPay',
  'openProductSpecificView',
  'addCard',
  'chooseCard',
  'openCard',
  'getLocalImgData'
 ]
 });
 
 wx.error(function(res) {
 alert("wx.config加載失敗");
 });
}, 'json');

2.具體實現過程

1)、選取照片

這里使用微信 js-sdk 的 chooseImage 方法,得到照片在本地存儲的 id,十分簡單:

2)、獲取照片數據

根據微信的官方開發文檔,得到的 localId 可以直接作為 img 元素的 src 屬性進行顯示

3)、照片上傳

這里使用微信 js-sdk 的 uploadImage 方法

wx.chooseImage({
 count: 1, // 默認9
 sizeType: ['original', 'compressed'], // 可以指定是原圖還是壓縮圖,默認二者都有
 sourceType: ['album', 'camera'], // 可以指定來源是相冊還是相機,默認二者都有
 success: function (res) {
  var localIds = res.localIds; // 返回選定照片的本地ID列表,localId可以作為img標簽的src屬性顯示圖片
  wx.uploadImage({
  localId: localIds[0], // 需要上傳的圖片的本地ID,由chooseImage接口獲得
  isShowProgressTips: 1, // 默認為1,顯示進度提示
  success: function (res) {
   var medias = {'lid':localIds[0].toString(), 'sid':res.serverId};
   $('#img_media').attr('src', medias.lid);
  },fail:function(res){
   alert("上傳失敗");
  }
  });
 }
});

3.iOS WKWebview 網頁開發適配

JSAPI相關適配

1)、將不再支持cache

變化:在WKWebview中將暫不支持cache jsapi。

適配建議:所有使用此api的開發者可去掉頁面相關邏輯。

2)、頁面通過LocalID預覽圖片

變化:1.2.0以下版本的JSSDK不再支持通過使用chooseImage api返回的localld以如:”img src=wxLocalResource://50114659201332”的方式預覽圖片。

適配建議:直接將JSSDK升級為1.2.0最新版本即可幫助頁面自動適配,但在部分場景下可能無效,此時可以使用getLocalImgData 接口來直接獲取數據。

(目前JSSDk線上版本是 1.0.0 和 1.1.0,更新版本為1.2.0 ,https://res.wx.qq.com/open/js/jweixin-1.2.0.js  )

if (window.__wxjs_is_wkwebview) {
 wx.getLocalImgData({
 localId: localIds[0], // 圖片的localID
 success: function (res) {
  var localData = res.localData; // localData是圖片的base64數據,可以用img標簽顯示
  localData = localData.replace('jgp', 'jpeg');//iOS 系統里面得到的數據,類型為 image/jgp,因此需要替換一下
  $('#img_media').attr('src', localData);
 },fail:function(res){
  alert("顯示失敗");
 }
 });
}

三、有使用JSSDK,并且使用了wx.config進行權限授權需關注jsapi調用的失敗問題

變化:WKWebview的內部實現變更使我們對微信內的頁面jsapi權限管理做了一定邏輯上的調整,有極小可能會發生以前授權正常的jsapi獲取權限不正常,從而導致調用jsapi失敗。

適配建議:

1. iOS微信6.5.1,WKWebview在此版本中已知有以下問題:頁面使用HTML5的History API pushState; popstate;      replaceState等控制頁面導航(典型的如單應用頁面),同時使用JSSDK的wx.config為jsapi授權,此時大幾率會出現jsapi因為無權限而調用失敗的問題。 在6.5.1中頁面若可能的情況下,可使用Anchor hash技術替換History技術來解決此問題。

2. iOS微信6.5.2及其之后版本,將不會存在以上問題,但不能100%確認有使用到 history或hash技術更改頁面導航地址的頁面完全沒有此類問題,依然需要開發者注意關注此類問題。

感謝各位的閱讀!關于“如何實現微信JS-SDK選取手機照片上傳的功能”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

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

AI

高台县| 凤凰县| 合阳县| 阳高县| 象山县| 沾化县| 寻甸| 阜阳市| 台东市| 全南县| 永昌县| 新津县| 和静县| 区。| 玉龙| 荃湾区| 永善县| 蓝田县| 日土县| 洛扎县| 泸西县| 新丰县| 昌邑市| 丹江口市| 岳池县| 吴川市| 江源县| 抚顺市| 昌平区| 尼勒克县| 安岳县| 河东区| 隆回县| 贵南县| 临沂市| 大竹县| 宝鸡市| 山东| 芜湖市| 武功县| 建水县|