
微信小程序
神奇大叔
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
小程序 开发者工具生成骨架屏、darkMode适配代码
工具可以为当前正在预览的页面生成骨架屏代码。工具入口位于模拟器面板右下角三点处原创 2021-11-15 15:24:22 · 578 阅读 · 0 评论 -
小程序 冷启动页面定向、保存状态
1、小程序冷启动的页面 小程序冷启动时,打开的页面有以下情况 (A类场景)若启动的场景中不带path 基础库 2.8.0 以下版本,进入首页 基础库 2.8.0 及以上版本遵循「重新启动策略」,可能是首页或上次退出的页面 (B类场景)若启动的场景中带有path,则启动进入对应path 的页面2、冷启动重定向 小程序冷启动时,如果启动时不带path(A类场景),默认情况下将会进入小程序的首页。 在页面对应的json文件中,(也可以全)配置在app.jso原创 2021-10-28 16:44:14 · 1426 阅读 · 0 评论 -
小程序 提高被搜索曝光率
小程序搜索优化指南爬虫访问小程序内页面时,会携带特定的 user-agent “mpcrawler” 及场景值:1129判断请求是否来源于官方搜索爬虫的方法:签名算法与小程序消息推送接口的签名算法一致。详情参数在请求的header里设置,分别是: X-WXApp-Crawler-Timestamp X-WXApp-Crawler-Nonce X-WXApp-Crawler-Signature签名流程如下: 1.将token、X-WXApp-Crawler-Timestamp、X-WXApp-Cra原创 2021-11-15 10:13:23 · 525 阅读 · 0 评论 -
小程序 打印日志
日志汇聚并实时上报到小程序后台。开发者可从小程序管理后台“开发->开发管理->运维中心->实时日志”进入小程序端日志查询页面“小程序插件->实时日志”进入插件端日志查询页面,进而查看开发者打印的日志信息。1、小程序/小游戏端 (1)log.js文件 var log = wx.getRealtimeLogManager ? wx.getRealtimeLogManager() : null module.exports = { debug() {原创 2021-11-12 15:46:35 · 4465 阅读 · 0 评论 -
小程序 视频号
1、跳转到指定视频号 wx.openChannelsActivity({ finderUserName 视频号 id 获取视频号ID的需要登录视频号助手,在首页可以查看自己的视频号ID feedId 视频 feedId 唯一标识某一条视频,获取视频的feedId需要登录视频号助手,在「动态管理」模块可以复制自己发表的每个视频对应的feedId。 success 接口调用成功的回调函数 fail 接口调用失败的回调函数 complete 接口调用结束的回调函数(调用成功原创 2021-11-11 16:24:14 · 3581 阅读 · 1 评论 -
小程序 获取小程序链接
获取打开小程序任意页面的链接,适用于从短信、邮件、微信外网页等场景打开小程序。 服务端调用 短信打开小程序的三种方式: 通过URL Scheme实现 通过服务端接口或在小程序管理后台生成URL Scheme后,自行开发中转H5页面。 将带有中转H5链接的短信内容通过开发者自有的短信发送能力或服务商的短信服务进行投放,实现短信打开小程序。 通过URL Link实现 通过服务端接口生成URL Link。 直接将带有URL Link的短信内容通过开发者自有的短信发送能力或服务商原创 2021-11-11 12:00:13 · 5831 阅读 · 1 评论 -
小程序 生成二维码
由后端去请求,然后返回图片Buffer接口调用凭证ACCESS_TOKEN通过如下接口获取 GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET1、接口A:适用于需要的码数量较少的业务场景。通过该接口生成的小程序码,永久有效,有数量限制 POST https://api.weixin.qq.com/wxa/getwxacode?ac原创 2021-11-11 10:51:04 · 1581 阅读 · 0 评论 -
小程序 微信位置详情页打开小程序
为了让用户更便捷地使用小程序的打车服务,在位置消息详情页的菜单中,新增了打车小程序入口。打开聊天中的位置消息,点击详情页右下角绿色按钮,菜单中会展示符合条件的打车小程序,用户可以直接发起目的地为该位置的打车服务。小程序的注册类目为“打车(网约车)”,且有用户最近使用的记录,才可以出现在该菜单中。在此处点击打开小程序后,需要直接进入到发起打车页面。(1)配置 开发者需要在全局配置app.json声明支持从位置消息入口进入小程序。 "entranceDeclare": { "locat原创 2021-11-10 15:15:49 · 565 阅读 · 0 评论 -
小程序 消息订阅、统一服务消息、客服消息、消息推送
1、消息类型 (1) 一次性订阅消息 用户自主订阅后,开发者可不限时间地下发一条对应的服务消息;每条消息可单独订阅或退订。 (2) 长期订阅消息 用户订阅一次后,开发者可长期下发多条消息。 目前长期性订阅消息仅向政务民生、医疗、交通、金融、教育等线下公共服务开放,后期将逐步支持到其他线下公共服务业务。 (3) 订阅消息语音提醒 当开发者调用wx.requestSubscribeMessage时仅订阅1条消息且该模板支持开启语音提醒,当用户开启了语音提醒,该模板的订阅状态为'a原创 2021-11-10 11:55:53 · 3508 阅读 · 1 评论 -
小程序 小程序中打开其他小程序、小程序跳转其他小程序、微信群聊中打开小程序
1、小程序中打开其他小程序 可将要打开的小程序通过半屏的形态快速拉起 (1)配置 app.json的embeddedAppIdList字段中声明需要通过半屏形态打开的小程序,若不配置将降级为普通的小程序跳转小程序。 { "embeddedAppIdList": ["wxe5f52902cf4de896"] appid } (2)打开 wx.openEmbeddedMiniProgram({ appId 要打开的小程序appId path 打开的页面路原创 2021-11-09 15:59:50 · 4161 阅读 · 0 评论 -
小程序 打开App
(1)需要用户主动触发 <button open-type="launchApp" app-parameter="传递字符串参数" binderror="launchAppError">打开APP</button>(2)打开条件 场景值1069:移动应用通过openSDK进入微信,打开小程序 当小程序从以下场景打开时,保持上一次打开小程序时打开App能力的状态: 从其他小程序返回小程序(场景值1038)时(基础库2.2.4及以上版本支持) 小程序从聊天顶部场景(场原创 2021-11-09 15:36:47 · 2541 阅读 · 0 评论 -
小程序 体育数据分享到微信运动
用户每次打卡都会记录到微信运动中,请开发者妥善处理用户打卡成功的场景,避免重复打卡。微信运动排行榜中, 展示的是最近一次打卡的第一条记录(1)申请开通 小程序管理后台,「开发」-「接口设置」中自助开通该组件权限,只针对「体育-在线健身」类目的小程序开放。(2)传入运动数据 wx.shareToWeRun传入用户的运动数据,会触发弹窗,用户点击确定后即可在微信运动排行榜与详情页中展示运动数据。 wx.shareToWeRun({ recordList: [{ typ原创 2021-11-09 11:36:16 · 773 阅读 · 0 评论 -
小程序 自定义前后端通信加密
为了避免小程序与开发者后台通信时数据被截取和篡改,微信侧维护了一个用户维度的可靠key,用于小程序和后台通信时进行加密和签名。开发者可以分别通过小程序前端和微信后台提供的接口,获取用户的加密key。1、自定义加密解密 const somedata = 'xxxxx' const userCryptoManager = wx.getUserCryptoManager() userCryptoManager.getLatestUserKey({ success({encryptKey, i原创 2021-11-09 10:46:43 · 3258 阅读 · 0 评论 -
小程序 设置小程序打开聊天中的素材
功能介绍 微信聊天内素材(文件、图片、视频和webview)的打开方式增加使用小程序打开的入口。 用户可通过小程序处理聊天内的文件、图片、视频和webview。 例如用小程序将文件存储到网盘、给图片加滤镜、进行视频剪辑或者将webview保存到笔记等。目前仅支持不带二维码的图片直接通过小程序打开。1、使用配置 app.json中声明支持打开的文件类型,对一种文件类型只能声明一种处理方式,支持通配模式*配置 { "supportedMaterials": [ {原创 2021-11-09 10:29:36 · 1055 阅读 · 0 评论 -
小程序 生物认证(指纹、面部识别、声纹识别)
只是自己手机的验证,比如手机有指纹就可以调指纹的,有人脸识别就掉人脸识别的,就类似支付方式验证,仅本地验证(根据微信官网评论得出此消息)(1)验证设备支持认证方式 wx.checkIsSupportSoterAuthentication({ success(res) { res.supportMode = [] 不具备任何被SOTER支持的生物识别方式 res.supportMode = ['fingerPrint'] 只支持指纹识别 res.supportMode原创 2021-11-03 16:55:36 · 4389 阅读 · 0 评论 -
小程序 UnionID详解和使用场景
UnionID机制说明 如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过UnionID来区分用户的唯一性 因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的UnionID是唯一的。 换句话说,同一用户,对同一个微信开放平台下的不同应用,UnionID是相同的。UnionID获取 1、通过wx.login等接口 (1)调用wx.login()获取临时登录凭证code,并回传到开发者服务器。 (2)调用auth.code2Sessio原创 2021-11-03 15:22:43 · 4921 阅读 · 0 评论 -
小程序 初始渲染缓存
初始渲染缓存工作原理小程序页面的初始化分为两个部分。逻辑层初始化:载入必需的小程序代码、初始化页面 this 对象(也包括它涉及到的所有自定义组件的 this 对象)、将相关数据发送给视图层。视图层初始化:载入必需的小程序代码,然后等待逻辑层初始化完毕并接收逻辑层发送的数据,最后渲染页面。在启动页面时,尤其是小程序冷启动、进入第一个页面时,逻辑层初始化的时间较长。在页面初始化过程中,用户将看到小程序的标准载入画面(冷启动时)或可能看到轻微的白屏现象(页面跳转过程中)。启用初始渲染缓存,可以使视原创 2021-10-26 15:48:09 · 437 阅读 · 0 评论 -
小程序 开启设备旋转以及监听、开启大屏分栏
1、在手机上启用屏幕旋转支持 app.json:window中设置 "pageOrientation": "auto|landscape" 所有页面都可旋转|是横屏 在页面json文件:"pageOrientation": "auto|landscape" 指定页面旋转|横屏2、在iPad上启用屏幕旋转支持 在app.json中添加"resizable": true 在iPad上不能单独配置某个页面是否支持屏幕旋转3、监听旋转 页面中: Page({ onResize(r原创 2021-10-25 17:45:26 · 1791 阅读 · 0 评论 -
小程序 配置爬虫索引
小程序根目录下的sitemap.json文件用来配置小程序及其页面是否允许被微信索引配置所有页面都能被索引 { "rules":[{ "action": "allow", "page": "*" }] }配置指定页面不能被索引 { "rules":[{ "action": "disallow", "page": "path/to/page" }] } 配置只有指定页面能被索引 { "rules":[{ "原创 2021-10-22 18:40:36 · 230 阅读 · 0 评论 -
小程序 下载预览文档
Page({ // 点击“预览文档”的按钮,触发tap回调 tap: function() { wx.getNetworkType({ success: function(res) { // networkType字段的有效值: // wifi/2g/3g/4g/unknown(Android下不常见的网络类型)/none(无网络) if (res.networkType == 'wifi') {原创 2021-10-21 14:23:25 · 1040 阅读 · 0 评论 -
小程序 DarkMode主题适配
(1)开启适配 在app.json中配置darkmode为true,即表示当前小程序已适配 DarkMode,所有基础组件均会根据系统主题展示不同的默认样式,navigation bar和tab bar也会根据下面的配置自动切换。 { "darkmode":true }(2)指定主题下自定义设置 1、在app.json中配置themeLocation,指定变量配置文件theme.json路径 如:在根目录下新增theme.json,需要配置"themeLocation":"them原创 2021-10-14 16:46:20 · 1485 阅读 · 1 评论 -
小程序 预数据拉取
预拉取能够在小程序冷启动(第一次打开或已被销毁)的时候通过微信后台提前向第三方服务器拉取业务数据,当代码包加载完时可以更快地渲染页面,减少用户等待时间,从而提升小程序的打开速度 。(1)后台配置 开发->开发管理->开发设置->填写数据下载地址,只支持 HTTPS(2)设置token验证身份 字符串可以跟用户态相关,会在后续微信客户端向开发者服务器请求时带上,便于给后者校验请求合法性。 一次启动小程序时,调用wx.setBackgroundFetchToken()设置一个TO原创 2021-10-06 17:13:24 · 1846 阅读 · 0 评论 -
小程序 设置周期性拉取数据
周期性更新能够在用户未打开小程序的情况下,也能从服务器提前拉取数据,当用户打开小程序时可以更快地渲染页面,减少用户等待时间,增强在弱网条件下的可用性。(1)后台配置 开发->开发管理->开发设置->填写数据下载地址(2)设置token验证身份 字符串可以跟用户态相关,会在后续微信客户端向开发者服务器请求时带上,便于给后者校验请求合法性。 一次启动小程序时,调用wx.setBackgroundFetchToken()设置一个TOKEN字符 App({ onLaunc原创 2021-10-06 16:23:07 · 1091 阅读 · 0 评论 -
小程序 多线程Worker(类似h5的webWorker)
一些异步处理的任务,可以放置于Worker中运行,待运行结束后,再把结果返回到小程序主线程。Worker运行于一个单独的全局上下文与线程中,不能直接调用主线程的方法。双方使用Worker.postMessage()来发送数据,Worker.onMessage()来接收数据限制: Worker最大并发数量限制为1个,创建下一个前请用Worker.terminate()结束当前Worker Worker内代码只能require指定Worker路径内的文件,无法引用其它路径 Worker内不支持wx原创 2021-10-05 16:56:11 · 1606 阅读 · 0 评论 -
小程序 按需注入和用时注入
通常情况下,在小程序启动时,启动页面所在分包和主包(独立分包除外)的所有JS代码会全部合并注入包括其他未访问的页面以及未用到自定义组件,造成很多没有使用的代码注入到小程序运行环境中,影响注入耗时和内存占用。 1、按需注入 小程序仅注入当前页面需要的自定义组件和页面代码,在页面中必然不会用到的自定义组件等不会被加载和初始化且不会被执行。 在页面.json中配置 { "lazyCodeLoading": "requiredComponents" }2、 用时注 可以指定一部分自定义组件原创 2021-10-05 16:41:01 · 5180 阅读 · 0 评论 -
小程序 分包
某些情况下,开发者需要将小程序划分成不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载。在构建小程序分包项目时,构建会输出一个或多个分包。每个使用分包小程序必定含有一个主包。所谓的主包,即放置默认启动页面/TabBar页面,以及一些所有分包都需用到公共资源/JS 脚本;而分包则是根据开发者的配置进行划分。在小程序启动时,默认会下载主包并启动主包内页面,当用户进入分包内某个页面时,客户端会把对应分包下载下来,下载完成后再进行展示。目前小程序分包大小有以下限制: 整个小程序所有原创 2021-10-04 16:29:56 · 12970 阅读 · 0 评论 -
小程序 报错处理合集
1、WebAssembly.instantiate(): Argument 0 must be a buffer source or a WebAssemb版本原因,详情->本地设置->修改调试基础库原创 2021-06-17 14:22:42 · 324 阅读 · 0 评论 -
微信小程序 获取右上角胶囊按钮布局信息
let res=wx.getMenuButtonBoundingClientRect()返回值 width number 宽度,单位:px height number 高度,单位:px top number 上边界坐标,单位:px right number 右边界坐标,单位:px bottom number 下边界坐标,单位:px left number 左边界坐标,单位:px...原创 2020-11-03 23:07:46 · 2918 阅读 · 1 评论 -
微信小程序 获取dom节点信息、监听dom节点布局、指定监听页面的媒体查询
直接在生命周期函数中获取值为null 方式一:再加个延迟200毫秒的函数获取 方式二:在onReady中使用(未测试)1、创建选择器 const query = wx.createSelectorQuery(); 将选择器的选取范围更改为自定义组件component内.(初始时,选择器仅选取页面范围的节点,不会选取任何自定义组件中的节点) const query = wx.createSelectorQuery().in(this);2、查询 获取单个 query.select(原创 2020-09-28 22:45:39 · 10997 阅读 · 0 评论 -
验证token
1、获取服务器返回的token2、将token缓存在本地 wx.setStorageSync('token',token); 3、发送请求时携带token 通过本地缓存获取token 携带token方式 (1)cookie(不推荐) (2)作为参数在url中 (3)发送网络请求时放在请求头 header:{ authorization:token } 4、服务器从本地获取token并验证token身份 let t原创 2020-05-20 17:13:35 · 722 阅读 · 0 评论 -
将appid和sessionKey加密生成token返回
1、利用jsonwebtoken加密代码示例:router.get('/getOpenId',async (ctx,next)=>{ let code=ctx.query.code; let appid='xx'; let appSecret='xx'; let url=`https://api.weixin.qq.com/sns/jscode2session?appid=${appid}&secret=${appSecret}&js_code=${code}&原创 2020-05-20 16:25:06 · 1238 阅读 · 0 评论 -
小程序 login登录、checkSession检验登录态、获取openid和session_key
1、获取用户的临时登录凭证: 在App.vue生命周期函数中 wx.login({ success:(res)=>{ res.code; } }) 2、将临时凭证传给后台,让后台请求腾讯服务器 (1)获取传递的临时凭证 (2)获取appid (3)获取AppSecret(小程序密钥),在微信程序后台开发处获取 (4)拼接请求url appid、secret、js_code放入对应的数据 let url=`https:原创 2020-05-20 15:38:48 · 2846 阅读 · 0 评论 -
微信小程序 获取用户信息、敏感信息解密
wx.getUserInfo({ success:function(res){ res.userInfo获得用户信息对象 }})原创 2020-03-09 17:19:29 · 2368 阅读 · 1 评论 -
小程序 权限设置
(1)获取用户的授权信息 wx.getSetting({ withSubscriptions: true, 是否同时获取用户订阅消息的订阅状态,默认不获取,注意:withSubscriptions只返回用户勾选过订阅面板中的“总是保持以上选择,不再询问”的订阅消息。 success: function (res) { 会返回已经授权的信息 } }) (2)打开后台授权信息控制台: wx.openSetting({ withSubs原创 2021-08-13 17:42:31 · 2379 阅读 · 0 评论 -
小程序 云托管服务器
1、云托管配置 详见:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/container/guidance.html2、使用 (1)小程序端 const res = await wx.cloud.callContainer({ path: '/', 填入业务自定义路径 header: { 'X-WX-SERVICE': 'helloworld', 填入服务名称 },原创 2021-11-22 11:49:30 · 1805 阅读 · 0 评论 -
小程序 云数据库增删改查、聚合
增 初始化 let db=wx.cloud.database() 连接集合 db.collection('集合名').add({ data:{ 键值对 }, success:function(res){ 成功回调 } }) 查 1、id查询 async getDb(){ let db=wx.cloud.database(); ...原创 2020-03-09 10:31:56 · 1359 阅读 · 0 评论 -
小程序 云存储、云下载和云暂时链接
如图片: 回调函数中的this执向不同 let that =this; wx.chooseImage({ success:function(res){ wx.cloud.uploadFile({ //上传到云服务器的id cloudPath:xx+'.png', //上一个chooseImage的成功回调函数返回结果...原创 2020-03-09 08:25:34 · 862 阅读 · 0 评论 -
微信小程序 云函数
1、创建云函数 会自动生成index.js文件,若无需手动生成 2、云函数语法//云函数内就相当于一个node,可进行node操作,如安装包等//右键云函数的文件夹,选择终端中打开,即可安装包 'use strict'; exports.main = (event, context, callback) => { event代表调用云函数的函数中的data对象 co...原创 2020-03-07 22:03:08 · 1409 阅读 · 0 评论 -
小程序 webSocket、mDNS、TCP、UDP
1、webSocket (1)建立连接 const SocketTask=wx.connectSocket({ url 开发者服务器wss接口地址 header HTTPHeader,Header中不能设置Referer protocols 子协议数组 tcpNoDelay 建立TCP连接的时候的TCP_NODELAY设置 perMessageDeflate 是否开启压缩扩展 timeout 超时时间,单位为毫秒 success原创 2021-11-30 11:54:35 · 2264 阅读 · 0 评论 -
微信小程序 全局变量
小程序 >开发 >指南 >小程序框架 >逻辑层 >模块化设置全局可获取的数据1、在app.js文件中: App({ 键值对 })2、在其他页面的js中调用: var app=new getApp(); app.属性名调用代码示例:app.js文件:App({ globalUrl:{ "douban": "https://api...原创 2020-02-18 22:21:05 · 2230 阅读 · 0 评论