微信小程序埋点方法

参考文章 小程序自动埋点教程 ,只需要在 app.js 中添加如下代码即可在不修改页面代码的情况下添加埋点处理。

下面的示例代码中在 onLoad 事件后增加了埋点处理。

const oldPage = Page;
Page = function (args) {
  const oldOnLoad = args.onLoad;
  args.onLoad = function (opts) {
    const _self = this;
    if (oldOnLoad) {
      oldOnLoad.call(_self, opts);
    }
    onLoadTrace.call(_self);
  }

  oldPage(args);
}

function onLoadTrace() {
  // 自定义的埋点处理
  const _self = this;
  console.log("onLoadTraceLog on " + _self.route);
}
.NET Core C# 版微信小程序加密数据解密算法示例

微信官方文档 加密数据解密算法 中只提供了 c++NodePHPPython 四种语言的示例代码。

微信小程序刷新前一页面

场景

从列表页跳转到在新页面,新增一条记录后,返回前页并自动刷新列表。

参考

微信小程序之更新上一页数据 (十二)

实现

  1. 在列表定义一个变量 isNeedRefresh 用来标志是否需要刷新

  2. 在新增页面新增记录后更新前页(即列表页)的标志位。

    // 获取页面栈
    var pages = getCurrentPages();
    if(pages.length > 1){
        // 上一个页面实例对象
        var prePage = pages[pages.length - 2];
        // 关键在这里
        prePage.setData({
            isNeedRefresh: true
        })
    }
    
  3. 在列表页的 onShow 方法中根据该标志决定是否刷新

    onShow: function () {
        const self = this
        if (self.data.isNeedRefresh) {
          // 调用刷新方法
            self.refresh()
            self.setData({
                isNeedRefresh: false
            })
        }
    }
    
微信小程序 API wx.authorize 中的 scope.userInfo 被废弃

微信废弃了 wx.authorize 接口中的 scope.userInfo 权限scope

而如果没有用 button 组件授权过,wx.getUserInfo 调用接口返回失败。

这意味着,用户未授权的情况下,无法在程序启动时自动弹出用户授权的提示框,只能改为用户手动点击按钮触发授权。

详见微信团队公告 获取用户信息接口优化调整