IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 微信小程序里面嵌套的h5使用微信sdk配置踩坑 -> 正文阅读

[移动开发]微信小程序里面嵌套的h5使用微信sdk配置踩坑

微信小程序里面的h5使用微信的sdk接口和在公众号使用没有区别,都需要通过微信的权限认证才能使用

使用前配置

  • 需要用到服务号的appid,并在公众号后台配置js安全域名
  • (踩坑)js安全域名不需要http或者https,否者权限认证会不生效。。在权限认证时会报invalid url domain错误。

权限签名认证

在进入页面后或者在使用到微信接口的页面进行权限认证,通过调用后台接口获取appid,时间戳,和微信签名,然后调用wx.config进行接口初始化,后面要使用到的接口一定要通过jsApiList配置后才能正常使用。初始化后会调用wx.ready函数,调用接口的时候一定要在初始化完成之后,否者会报错。
封装权限认证函数

import {wxValidateConfig} from '../server/getDataUrl'
export const wxConfig = async function() {
  let url
  const env = window.navigator.userAgent
  let isWxUa = env.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'
  // 判断是否是微信内置浏览器
  if(!isWxUa) return 
  url = window.sessionStorage.getItem('wxConfigSignUrl')
  // 小程序web-view环境需要用最初进入路由的第一个页面的url去签名
    // if (/miniProgram/.test(env)) {
    //   url = window.sessionStorage.getItem('wxConfigSignUrl')
    // }else {
    //   url = window.location.href.split('#')[0]
    // }
    const {data:res} = await wxValidateConfig(url)
    if(res.code == 200) {
          // 微信sdk权限验证
          window.wx.config({
              // debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
              appId: res.data.appid, // 必填,公众号的唯一标识
              timestamp: res.data.timestamp, // 必填,生成签名的时间戳
              nonceStr: res.data.noncestr, // 必填,生成签名的随机串
              signature: res.data.signatrue,// 必填,签名
              jsApiList: ['chooseImage','uploadImage','getLocalImgData','startRecord','stopRecord','onVoiceRecordEnd','playVoice','uploadVoice'] // 必填,需要使用的JS接口列表
            }),
          window.wx.ready(function() {
            
          }),
          window.wx.error(function(res) {
              console.log(res);
              console.log('验证失败');
          })
       }
}

(踩坑)通过url请求后台接口换取签名的时候,一定要用项目第一次进入的页面路径(小程序的web-view嵌套的h5页面是这样的),路径是web-view组件的src路径,否则权限认证的时候会报invalid signature签名错误,具体错误信息请参考常见错误及解决方法

配置成功后就可以正常调用微信的接口了。。。

微信图片上传的问题

通过调用微信的wx.chooseImage()接口可以调起手机的相机相册,选择成功后会返回一个图片的本地id,可以通过img的src属性正常预览图片,然后通过wx.uploadImage接口上传到微信服务器,上传成功后会返回一个服务器id,图片只能在微信服务器短期保存。要保存在自己服务器的话还需要调用微信官方的获取图片素材的接口,把图片从微信服务器下载下来,保存在本地服务器。

图片上传需要页面与微信服务器的交互,微信服务器与本地服务器的交互

微信录音接口

在微信小程序的web-view组件中调用手机的录音权限时,在权限认证成功后还是会报签名错误,不知道啥原因。。。。。(踩坑)

注意:微信小程序的web-view组件只有调用一部分微信的sdk接口的权限,并不是所有接口都能调用,详细请查看小程序web-view组件

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-05-19 11:59:57  更:2022-05-19 12:00:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 2:04:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码