首頁 微信小程式 小程式開發 關於微信JS-SDK選取手機照片上傳的功能

關於微信JS-SDK選取手機照片上傳的功能

Jun 27, 2018 pm 02:24 PM
js sdk 上傳 微信

這篇文章主要為大家詳細介紹了微信JS-SDK選取手機照片上傳功能,具有一定的參考價值,有興趣的小夥伴們可以參考一下

專案中遇到需要選取照片上傳的需求,因為網頁是運行在微信的瀏覽器裡面,所以用微信的js-sdk 提供的選取照片功能,來進行專案開發。實際開發需要用到微信web開發者工具,詳細參考連結:https://mp.weixin.qq.com/wiki/10/e5f772f4521da17fa0d7304f68b97d7e.html。

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技術更改頁面導航地址的頁面完全沒有此類問題,依然需要開發者註意關注此類問題。 本文已被整理到了《JavaScript微信開發技巧總結》,歡迎大家學習閱讀。

為大家推薦現在關注度比較高的微信小程式教學一篇:《微信小程式開發教學》小編為大家精心整理的,希望喜歡。

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網! 相關推薦:

######微信小程式中支付後呼叫SDK的非同步通知及驗證處理訂單方法###############微信小程式中的網路請求(post請求與get請求)#########################

以上是關於微信JS-SDK選取手機照片上傳的功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

傳言說'iPhone 16 可能不支援微信”,蘋果中國區技術顧問稱正與騰訊溝通應用商店抽成事宜 傳言說'iPhone 16 可能不支援微信”,蘋果中國區技術顧問稱正與騰訊溝通應用商店抽成事宜 Sep 02, 2024 pm 10:45 PM

感謝網友情切琛思、HH_KK、石原里美幸福、華南吳彥祖的線索投遞! 9月2日消息,近期有傳言稱“iPhone16可能不支持微信”,對此貝殼財經記者致電蘋果官方熱線,蘋果中國區技術顧問回應稱,關於iOS系統或蘋果設備能否繼續使用微信,以及微信能否繼續在蘋果應用商店上架下載的問題,需要蘋果公司與騰訊之間進行溝通和探討,才能確定之後的情況。軟體應用商店及微信問題說明軟體應用商店技術顧問指出,軟體在蘋果商店上架可能需要開發者支付費用。達到一定下載量後,後續下載需向蘋果支付相應費用。蘋果正與騰訊積極溝通,

deepseek生成圖片教程 deepseek生成圖片教程 Feb 19, 2025 pm 04:15 PM

DeepSeek:強大的AI圖像生成利器! DeepSeek本身並非圖像生成工具,但其強大的核心技術為眾多AI繪畫工具提供了底層支持。想知道如何利用DeepSeek間接生成圖片嗎?請繼續閱讀!利用基於DeepSeek的AI工俱生成圖像:以下步驟將引導您使用這些工具:啟動AI繪畫工具:在您的電腦、手機瀏覽器或微信小程序中搜索並打開一個基於DeepSeek的AI繪畫工具(例如,搜索“簡單AI”)。選擇繪畫模式:選擇“AI繪圖”或類似功能,並根據您的需求選擇圖片類型,例如“動漫頭像”、“風景

知情人士回應「微信可能不支援蘋果 iPhone 16」:傳言為謠言 知情人士回應「微信可能不支援蘋果 iPhone 16」:傳言為謠言 Sep 02, 2024 pm 10:43 PM

微信支持iPhone16謠言被闢謠感謝網友西窗舊事、HH_KK的線索投遞! 9月2日消息,今日有傳言稱,微信可能不支援iPhone16,iPhone一旦升級到iOS18.2系統將無法使用微信。據《每日經濟新聞》從知情人士處獲悉,此傳言為謠言。蘋果回應另據貝殼財經報道,蘋果中國區技術顧問回應稱,關於iOS系統或蘋果設備能否繼續使用微信,以及微信能否繼續在蘋果應用商店上架和下載的問題,需要蘋果公司與騰訊之間進行溝通和探討,才能確定之後的情況。目前,蘋果正與騰訊積極溝通,以確認騰訊是否會繼續向蘋果應用商

gateio中文官方網站 gate.io交易平台網址 gateio中文官方網站 gate.io交易平台網址 Feb 21, 2025 pm 03:06 PM

Gate.io,一家創立於 2013 年的領先加密貨幣交易平台,為中國用戶提供了完整的中文官方網站。該網站提供廣泛的服務,包括現貨交易、期貨交易和借貸,並提供中文界面、豐富的資源和社區支持等特色功能。

okx交易平台手續費一覽 okx交易平台手續費一覽 Feb 15, 2025 pm 03:09 PM

OKX 交易平台提供了各種類型的費率,包括交易費用、提款費用和融資費用。對於現貨交易,交易費用根據交易量和 VIP 等級而有所不同,採取“做市商模式”,即市場每筆交易收取較低的手續費。此外,OKX 還提供了多種類型的期貨合約,包括幣本位合約、USDT 合約和交割合約,每種合約的費用結構也有所不同。

芝麻開門登錄註冊入口 gate.io交易所註冊官網入口 芝麻開門登錄註冊入口 gate.io交易所註冊官網入口 Mar 04, 2025 pm 04:51 PM

Gate.io(芝麻開門)是全球領先的加密貨幣交易平台,本文提供Gate.io現貨交易完整教程。教程涵蓋賬戶註冊登錄、KYC認證、法幣及數字貨幣充值、交易對選擇、限價/市價交易下單以及訂單和交易記錄查看等步驟,助您快速上手Gate.io平台進行加密貨幣交易。 無論是新手還是老手,都能從本教程中獲益,輕鬆掌握Gate.io交易技巧。

gateio交易所app老版本 gateio交易所app老版本下載渠道 gateio交易所app老版本 gateio交易所app老版本下載渠道 Mar 04, 2025 pm 11:36 PM

Gateio 交易所 app 老版本下載渠道,涵蓋官方、第三方應用市場、論壇社區等途徑,還給出下載注意事項,幫你輕鬆獲取老版本,解決新版本使用不適或設備兼容問題。

歐易交易所app國內下載教程 歐易交易所app國內下載教程 Mar 21, 2025 pm 05:42 PM

本文提供國內安全下載歐易OKX App的詳細指南。由於國內應用商店限制,建議用戶通過歐易OKX官方網站下載App,或使用官網提供的二維碼掃描下載。下載過程中,務必核實官網地址,檢查應用權限,安裝後進行安全掃描,並啟用雙重驗證。 使用過程中,請遵守當地法律法規,使用安全網絡環境,保護賬戶安全,警惕詐騙,理性投資。 本文僅供參考,不構成投資建議,數字資產交易風險自負。

See all articles