从网页调起scan QR code时,Android正常,iOS无效。
1、从网页引入小程序SDK jweixin-1.3.2.js,并通过webview组件调起小程序page。
webview.html 代码片段
$(“body”).on(‘click’, ‘.qrcode-scan’, function () {
console.log(‘webview scan QR code’);
wx.miniProgram.navigateTo({
url: ‘/pages/scan-code/scan-code’
});
});
2、scan-code.wxml page,仅放1行代码即可。
scan-code.wxml 代码片段
<web-view src="{{url}}"></web-view>
3、scan-code.js,处理逻辑。
scan-code.js 代码片段
const webviewUrl = require(’…/…/config’).webviewUrl
Page({
data: {
url: webviewUrl + ‘#wechat_redirect’
},
onLoad: function (options) {
var that = this
wx.scanCode({
onlyFromCamera: true,
scanType: [‘qrCode’],
success: function(res) {
console.log(‘scan QR code successful.’)
that.setData({
url: webviewUrl + ‘?q=’ + encodeURIComponent(res.result) + ‘#wechat_redirect’
})
},
fail: function(res) {
console.log(‘scan QR code failed.’)
}
})
}
})
在 Android 真机上运行时调起微信扫码正常,在iOS真机上运行时调起扫码可以跳到 scan-code.wxml 页面,但是无法调起微信扫码(模拟器下iPhone 7 Plus是正常的)。