微信小程序demo解读(二)


  

  小程序最外层有三个文件,上次我们介绍了全局样式app.wxss,接着我们来说另外两个文件。

  我们来看看脚本文件App.js。为了方便解读我已经加上了注释。

//app.js
App({
    /*启动函数
    * */
    onLaunch: function () {
        var logs = wx.getStorageSync('logs') || [];     //调用API从本地缓存中获取数据
        logs.unshift(Date.now());
        wx.setStorageSync('logs', logs);    //存入缓存
    },
    /*获取用户信息
    *   @param cb获取成功时的回调
    * */
    getUserInfo: function (cb) {
        var that = this;
        if (this.globalData.userInfo) {
            typeof cb == "function" && cb(this.globalData.userInfo);  //执行回调
        } else {
            wx.login({      //调用登录接口
                success: function () {
                    wx.getUserInfo({
                        success: function (res) {
                            that.globalData.userInfo = res.userInfo;  //保存信息
                            typeof cb == "function" && cb(that.globalData.userInfo); //执行回调 
                        }
                    })
                }
            })
        }
    },
    /*全局对象
    * */
    globalData: {
        userInfo: null
    }
});

  App.js是小程序的入口,也就是程序的启动位置。Demo里面定义了两个初始化函数和一个全局对象,从小程序的API上可以查到。我们一个一个来说。

  1.onLaunch函数是小程序初始化完成后执行的函数,此时可以调取微信端的一些资源,比如缓存。

  2.getUserInfo函数并不是API中直接获取用户信息的函数,而其内部的wx.getUserInfo才是。它只是对获取函数进行了封装,要调用时可以写:

app.getUserInfo(function (userInfo) {
    操作用户信息userInfo;
})

  3.globalData用于存放全局变量,调用时可以用app.globalData。开发者可以往里面添加变量,也可以设置新的全局变量。

  app.json 是对整个小程序的全局配置。我们可以在这个文件中配置小程序是由哪些页面组成,配置小程序的窗口的背景色,配置导航条样式,配置默认标题。注意该文件不可添加任何注释(因为是json格式文件)。

{
  "pages":[
    "pages/index/index",
    "pages/logs/logs"
  ],
  "window":{
    "backgroundTextStyle":"light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "WeChat",
    "navigationBarTextStyle":"black"
  }
}

  1.pages就是我们小程序包含的页面,小程序规定页数不可以超过5个,可以看出小程序并不适合开发大型应用。

  2.window包含了一些窗口的样式设置,backgroundTextStyle是下拉背景字体、loading 图的样式,仅支持 dark/light;其余三个键值都是设置窗口的导航栏的属性,也是app.wxss作用域意外的地方的样式属性。导航栏在什么地方?修改navigationBVarTitleText为“轻松一哈”,可以看到导航栏就是位于屏幕的最上方的小程序的标题。

  

优质内容筛选与推荐>>
1、在windows 2008 R2中SQl Server 2008中代理启动失败的一个原因总结
2、第四章 - 控制执行流程
3、C++类与对象的进一步讨论(2)
4、【HDOJ6699】Block Breaker(模拟)
5、2.10086示例


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn