zoukankan      html  css  js  c++  java
  • 微信小程序-常见问题整理

    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

  • 相关阅读:
    利用NewID()生成随机数
    ie下取得iframe里面内容
    [转]linux下动态库安装问题
    【转】基于OpenCV的人脸识别设计方案
    [转]Vim中的记录功能
    [转]opencv中facedetect例子浅析
    [转]vc中 error LNK2001:unresolved external symbol _WinMain@16的解决方法
    转VS2010解决方案转换到VS2008
    JavaScript面向对象程序设计(8): 优雅的封装还是执行的效率?
    用DLL生成LIB文件
  • 原文地址:https://www.cnblogs.com/starrk-01/p/9372215.html
Copyright © 2011-2022 走看看