注:很多东西都打文档上有的,还是得多看文档
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 () {
//
},
onShow: function () {
//
},