记录刚开始做 微信小程序 的一些情况

注:很多东西都打文档上有的,还是得多看文档

1、刚进去的初始页面

app.json

刚进去初始化的页面是 app.json 的 pages 参数下写的第一个路径  "pages/index/index", pages 的最后一个路径不能写" , "逗号,一写就报错,其它的看官方文档   https://mp.weixin.qq.com/debug/wxadoc/dev/

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

onLaunch 方法是小程序初始化完成后自动执行的方法

globalData 是保存全局参数或者方法的地方,

App({
	onLaunch : function() {
		//console.log("a")
		this.getUserInfo();
	},
     globalData:{
        userInfo:null,
        openID : '',
        post(url,postData,doSuccess,doFail,doComplete){
              var host = 'http://www.pilotevc.com/cdzWeChat/cdz/';
              postData.openID = this.openID
              wx.request({
                url: host+url,
                data:postData,
                method: 'POST', 
                success: function(res){
                      if(typeof doSuccess == "function"){
                          doSuccess(res.data);
                      }
                },
                fail: function() {
                      if(typeof doFail == "function"){
                          doFail();
                      }
                },
                complete: function() {
                      if(typeof doComplete == "function"){
                          doComplete();
                      }
                }
            });
          }
      },
 })
获取 openid , 尽量不要在前端搞,这样会暴露 AppSecret 信息

  	wx.request({
          	url: 'https://api.weixin.qq.com/sns/jscode2session',
          	data: {
	       //小程序唯一标识
	            appid: appid,
	        //小程序的 app secret
	            secret: AppSecret,
	            grant_type: 'authorization_code',
	            js_code: res.code
          	},
          	method: 'GET',
          	header: { 'content-type': 'application/json'},
          	success: function(openIdRes){
              	_this.globalData.openID = openIdRes.data.openid;
          	},
          	fail: function(error) {
            	console.info("获取用户openId失败");
            	console.info(error);
          	}
        })


index.js

页面初始化完成方法是 onLoad(),页面获取全屏变量的方法通过 getApp()

var app = getApp().globalData;
Page({
  getData(){
      var userInfo = app.userInfo;
      app.post('GetStationInfos',json,function(ret){

       })
   },
   onLoad(){

   }
})
接入另一个 js 文件方法

//xx.js 文件
function formatNumber(n) {
    n = n.toString()
    return n[1] ? n : '0' + n
}
module.exports = {
    formatTime: formatTime,
}

//调用的 js 文件
var conf = require('../../utils/conf.js');
conf.xxx
index.wxml

1、我在主页面里有个全屏地图,然后要在地图上加一些元素,浏览器上可以,手机上发现地图把所有元素都盖掉了,后来才发面微信小程序的地图组件是调用原生的,级别是最高,普通元素都会在他下面

解决方法是在把元素全放在 <map> 标签里面,并只用 cover-view 标签


2、 bindtap 点击事件传递参数问题:  bindtap事件不能直接在方法后面用 ('xx') 传递参数, 可以用 data-xx 的方法,然后方法会传递一个 event 参数,在里面找就可以了

3、url 跳转页面带参数和接收参数的问题。

用 wx.navigateTo跳转

    goDetails(event){
        console.log(event)
        var id = event.target.dataset.id;
        wx.navigateTo({
            url: '../siteDetails/siteDetails?id='+id
        })
    }
     接收 url 方法,不带后面的参数,得出  pages/siteDetails/siteDetails

function getUrl(){
    var pages = getCurrentPages()    //获取加载的页面
    var currentPage = pages[pages.length-1]    //获取当前页面的对象
    var url = currentPage.route    //当前页面url
    return url
}
    接收全部 url ,带参数,得出  pages/siteDetails/siteDetails?id=4403051612010001
/*获取当前页带参数的url*/
function getDate(){
    var pages = getCurrentPages()    //获取加载的页面
    var currentPage = pages[pages.length-1]    //获取当前页面的对象
    var url = currentPage.route    //当前页面url
    var options = currentPage.options    //如果要获取url中所带的参数可以查看options
    
    //拼接url的参数
    var urlWithArgs = url + '?'
    for(var key in options){
        var value = options[key]
        urlWithArgs += key + '=' + value + '&'
    }
    urlWithArgs = urlWithArgs.substring(0, urlWithArgs.length-1)
    
    return urlWithArgs
}

onShow,onHide
手机从另个的app回来或者别的页面返回来都是触发
onShow: function () { 
        //
    },

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值