关于微信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中文网!
相关推荐:
Atas ialah kandungan terperinci 关于微信JS-SDK选取手机照片上传的功能. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas





Artikel ini menyediakan panduan terperinci untuk muat turun selamat aplikasi OUYI OKX di China. Oleh kerana sekatan ke kedai aplikasi domestik, pengguna dinasihatkan untuk memuat turun aplikasi melalui laman web rasmi OUYI OKX, atau menggunakan kod QR yang disediakan oleh laman web rasmi untuk mengimbas dan memuat turun. Semasa proses muat turun, pastikan anda mengesahkan alamat laman web rasmi, periksa kebenaran aplikasi, lakukan imbasan keselamatan selepas pemasangan, dan membolehkan pengesahan dua faktor. Semasa penggunaan, sila mematuhi undang -undang dan peraturan tempatan, gunakan persekitaran rangkaian yang selamat, melindungi keselamatan akaun, berhati -hati terhadap penipuan, dan melabur secara rasional. Artikel ini hanya untuk rujukan dan tidak menjadi nasihat pelaburan.

H5. Perbezaan utama antara program mini dan aplikasi ialah: Senibina Teknikal: H5 adalah berdasarkan teknologi web, dan program mini dan aplikasi adalah aplikasi bebas. Pengalaman dan Fungsi: H5 adalah ringan dan mudah digunakan, dengan fungsi terhad; Program mini adalah ringan dan mempunyai interaktif yang baik; Aplikasi berkuasa dan mempunyai pengalaman yang lancar. Keserasian: H5 adalah serasi, aplikasinya dan aplikasinya yang serasi dengan platform. Kos Pembangunan: H5 mempunyai kos pembangunan yang rendah, program mini sederhana, dan aplikasi tertinggi. Senario yang berkenaan: H5 sesuai untuk paparan maklumat, applet sesuai untuk aplikasi ringan, dan aplikasi sesuai untuk fungsi kompleks.

Saluran muat turun aplikasi gerbang untuk versi lama, meliputi pasaran aplikasi rasmi, pihak ketiga, komuniti forum dan saluran lain.

Isu keserasian dan kaedah penyelesaian masalah untuk perisian dan aplikasi keselamatan syarikat. Banyak syarikat akan memasang perisian keselamatan untuk memastikan keselamatan intranet. Walau bagaimanapun, perisian keselamatan kadang -kadang ...

Pilihan H5 dan Applet bergantung kepada keperluan. Untuk aplikasi dengan platform silang, perkembangan pesat dan skalabiliti yang tinggi, pilih H5; Untuk aplikasi dengan pengalaman asli, fungsi yang kaya dan ketergantungan platform, pilih applet.

H5 lebih fleksibel dan disesuaikan, tetapi memerlukan teknologi mahir; Program mini cepat bermula dan mudah dikekalkan, tetapi dibatasi oleh kerangka WeChat.

Artikel ini menyediakan panduan ringkas untuk membeli dan menjual mata wang maya Binance yang dikemas kini pada tahun 2025, dan menerangkan secara terperinci langkah -langkah operasi transaksi mata wang maya pada platform Binance. Panduan ini meliputi pembelian mata wang fiat USDT, pembelian transaksi mata wang mata wang lain (seperti BTC), dan operasi jualan, termasuk perdagangan pasaran dan perdagangan had. Di samping itu, Panduan juga secara khusus mengingatkan risiko utama seperti keselamatan pembayaran dan pemilihan rangkaian untuk urus niaga mata wang fiat, membantu pengguna menjalankan urus niaga Binance dengan selamat dan cekap. Melalui artikel ini, anda dapat dengan cepat menguasai kemahiran membeli dan menjual mata wang maya di platform Binance dan mengurangkan risiko transaksi.

Kawasan Scenic Lianyungang Huaguoshan bergabung dengan Tencent Cloud untuk melancarkan homo sapiens digital "otak dwi -teras" yang pertama dalam industri budaya dan pelancongan - Monkey King! Pada 1 Mac, tempat yang indah secara rasmi menghubungkan The Monkey King ke platform DeepSeek, sehingga ia mempunyai keupayaan model AI Tencent Hunyuan dan Deepseek, membawa pelancong pengalaman perkhidmatan yang lebih bijak dan lebih perhatian. Huaguoshan Scenic Area sebelum ini melancarkan Monkey King dari Digital Homo Sapiens berdasarkan model Tencent Hunyuan. Kali ini, Tencent Cloud terus menggunakan teknologi seperti Big Model Knowledge Engine untuk menyambungkannya ke DeepSeek untuk mencapai peningkatan "dwi-teras". Ini menjadikan keupayaan interaktif Monkey King ke tahap yang lebih tinggi, kelajuan tindak balas yang lebih cepat, keupayaan pemahaman yang lebih kuat, dan lebih banyak kehangatan. Monkey King mempunyai keupayaan pemprosesan bahasa semulajadi yang kuat dan dapat memahami pelbagai cara untuk bertanya dari pelancong.
