微信小程序-常见问题整理

1.全局变量,方法。

a.在app.js里面定义globalData对应的全局变量 

//app.js
App({
   globalData: {
       url: "www.baidu.com" 
    } 
})    

b.在其他页面js文件进行调用。例如在photo.js里面

//photo.js

//获取应用实例
const app = getApp();

Page({
   data: {

    }, 
     onReady: function () {
    
    },
    onLoad: function (options) {
       app.globalData.url = "www.bing.com";
      console.log("url:", app.globalData.url);
    },
})    

 

2.页面间跳转。

主要介绍三种跳转方式:

1) B页面自带返回按钮

//保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面
wx.navigateTo(OBJECT) 

2) B页面不带返回按钮

//关闭当前页面,跳转到应用内的某个页面。
wx.redirectTo(OBJECT)  

3) B页面不带返回按钮

// 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
wx.switchTab(OBJECT)      

举个栗子:

//example.wxml

<view bindtap="navigateBack"></view>
//example.js

navigateBack: function () {
    var self = this;
    var pages = getCurrentPages();
    if (pages.length == 1) {
      if (self.data.circleId && self.data.circleId >0) {
        wx.redirectTo({
          url: '../../circle/index/index?circleId=' + self.data.circleId
          + '&circleName=' + (self.data.circleName || '')
        });
      } else {
        wx.switchTab({
          url: "../../home/grouplist/grouplist"
        });
      }
    } else {
      wx.navigateBack({ changed: true });//返回上一页
    }
  },

重要:

1)、A -> B -> C   C直接返回A

A -> B  通过 wx.navigateTo 跳转

B -> C 通过 wx.redirectTo 跳转.跳转触发后 B 页面就会被销毁, C 页面再返回 wx.navigateBack 就会直接到 A 了

2)、A -> B -> C    返回效果C -> B -> A

正常 A -> B -> C 都是通过 wx.navigateTo 跳转的,所以 wx.navigateBack 只能返回上一界面

 可参考页面:https://www.cnblogs.com/yaoyuqian/p/7967472.html

3.页面传参数

直接由页面跳转的url上加入对应参数

//A.wxml

<navigator url="/pages/B/B?id=1"></navigator>
//B.js


onLoad: function (options) {
    
    console.log("id",options.id);
}

 页面间传值与取值可参考:https://www.jianshu.com/p/b2d912920a6a

4.添加卡卷

wx.addCard({
  cardList: [
    {
      cardId: '',
      cardExt: '{"code": "", "openid": "", "timestamp": "", "signature":""}'
    }, {
      cardId: '',
      cardExt: '{"code": "", "openid": "", "timestamp": "", "signature":""}'
    }
  ],
  success: function(res) {
    console.log(res.cardList) // 卡券添加结果
  }
})

参考:微信小程序开发文档,https://developers.weixin.qq.com/miniprogram/dev/api/card.html#wxaddcardobject

5.打开卡卷列表

wx.openCard({
  cardList: [
    {
      cardId: '',
      code: ''
    }, {
      cardId: '',
      code: ''
    }
  ],
  success: function(res) {
  }
})

参考:微信小程序开发文档,https://developers.weixin.qq.com/miniprogram/dev/api/card.html#wxopencardobject

posted @ 2018-07-26 15:49  czl11  阅读(172)  评论(0编辑  收藏  举报