为了获取AppID,AppID就像我们的身份证一样,是唯一且很重要的,后续的所有开发流程都会基于这个AppID来完成。
<view>{{title}}view>
Page({
data: {
message: 'hello'
}
})
<view id="{{id}}">view>
Page({
data: {
id: '001'
}
})
<view hidden="{{flag ? true : false}}"> Hidden view>
<view>{{"hello" + name}}view>
<view>{{name}}{{age}}view>
<view wx:if="{{a > 5}}">6view>
<view wx:elif="{{a < 5}}">4view>
<view wx:else">5view>
假设有数据和视图分别为:
data: {
str: 'abcdefg',
lesson: [
{
id: 0,
image: './0.png',
},
{
id: 1,
image: './1.png',
},
{
id: 2,
image: './2.png',
}
]
},
<view wx:for="{{leeson}}" wx:key="id">
注意:上面的wx:key的值为对应的属性,直接写属性的名称key即可,只要这个key是唯一标识
{{item}}{{index}}
view>
<view wx:for={{str}} wx:key="*this">
注意:如果遍历的是字符串,那么可以使用*this来作为唯一标识
{{item}}{{index}}
view>
<view wx:for={{str}} wx:key="*this" wx:for-item="s" wx:for-index="n">
注意:如果想更改默认每项的变量item,可以使用wx:for-item="{{s}}",这样s就能代替item了,同理,如果想更改每项的索引index,可以使用wx:for-index="n",这样n就能代替index了。
{{s}}{{n}}
view>
容器的作用,在页面渲染的时候,不会显示block标签,类似react的<>>
<block>
...
block>
事件对象可以携带额外信息,如id,dataset
事件
事件分类
事件绑定
bind事件绑定不会阻止冒泡事件向上冒泡,catch事件绑定可以阻止冒泡事件向上冒泡
onLoad 监听页面加载
onReady 监听页面初次渲染完成
onShow 监听页面显示
onHide 监听页面隐藏
onUnload 监听页面卸载
onPullDownRefresh 监听用户下载动作
onReachBottom 监听页面上拉触底事件
onShareAppMessage 监听用户点击右上角分享
特别注意:
<open-data type="userAvatarUrl">open-data>
<open-data type="userNickName">open-data>
<button open-type="getUserInfo" bindgetuserinfo="getUserInfo">button>
getUserInfo: (event) => {
if (e.detail.errMsg === "getUserInfo:ok") {
this.setData({
userAvatarPic: e.detail.userInfo.avatarUrl,
userNickName: e.detail.userInfo.nickName,
})
} else {
console.log("授权失败");
}
}
Page({
/**
* 页面的初始数据
*/
data: {
userAvatarPic: "",
userNickName: '',
},
onLoad: (options) => {
wx.getUserInfo({
success: (res) => {
this.setData({
userAvatarPic: res.userInfo.avatarUrl,
userNickName: res.userInfo.nickName,
})
}
})
},
})
Page({
onLoad: (options) => {
wx.getSetting({
success: (res) => {
if(res.authSetting['scope.userInfo']){
console.log('已经授权,可以显示用户信息');
}else{
console.log("尚未授权,显示授权按钮");
}
}
})
}
})
{
"pages": [
"pages/index/index",
"pages/home/home",
"pages/my/my"
],
"tabBar": {
"color": "#7a7e83", // 未被选中时的文字颜色
"selectedColor": "#e94840", // 被选中时的文字颜色
"borderStyle": "black", // tabbar上边框的颜色,仅支持black/white
"position": "bottom", // tabber位置,仅支持bottom/top,默认bottom,当为top时,不显示图标
"backgroundColor": "#fff", // 菜单背景色
"list": [{// 这个list,也就是tabbar的菜单限制为2-5个,包含2和5
"pagePath": "pages/home/home",
"text": "首页",
"iconPath": "", // icon路径
"selectedIconPath": "" // 选择了icon的路径
},{
"pagePath": "pages/my/my",
"text": "我的",
"iconPath": "",
"selectedIconPath": ""
}]
}
}
{
"pages": [
"pages/index/index",
"pages/home/home",
"pages/my/my"
],
"window": {
"navigationBarBackgroundColor": "#ffffff", // 顶部导航条的背景颜色
"navigationBarTextStyle": "black",// 顶部导航文字的颜色,只有black/white两种颜色
"navigationBarTitleText": "无止课堂",// 顶部导航的标题
"backgroundColor": "#eeeeee",
"backgroundTextStyle": "light",
"enablePullDownRefresh": false
},
}
{
"navigationBarBackgroundColor": "#ef2046",
"navigationBarTextStyle": "white",
"navigationBarTitleText": "个人中心",
"backgroundColor": "#eeeeee",
"backgroundTextStyle": "light",
"enablePullDownRefresh": false
}
{
"pages": [
"pages/index/index",
"pages/home/home",
"pages/my/my"
],
"newtworkTimeout": { // 默认都是20s
"request": 20000, // 请求超时
"connectSocket": 20000, // 连接超时
"uploadFile": 20000, // 文件上传超时
"downloadFile": 20000 // 文件下载超时
}
}
onShareAppMessage(){
return {
title: '自定义转发标题',
path: 'page/user?id=123',
imageUrl:'',
}
}
- title是自定义转发标题
- path是用户点击打开显示的路径地址
- imageUrl是转发显示的图片地址,如果不写,则显示页面截图
getSwiper(){
// 可以通过右上角的详情,不校验合法域名、web-view(业务域名)、TLS版本及HTTPS证书
// 公共域可以有以下几种方式设置:
// 1. 在app.js中,然后在当前页面最上方使用const app = getApp(),然后,app.base_url即可获取到base_url属性
wx.request({
url: app.base_url + '/getSliderss',
data: '',
header: {},
method: 'GET',
dataType: 'json',
responseType: 'text',
success: (res) => {},
fail: (res) => {},//接口404这种才会走这里,如果接口调用成功,返回错误码,是走success的
complete: (res) => {},// 接口完成后调用
})
},
import {base_url} from './conifg.js';
class HTTP {
request({ url = '', data = {}, header = {}, method = 'GET', success = () => {}, fail = () => {}}){
return new Promise((resolve, reject) => {
this._request(url, data, header, method, resolve, reject);
})
}
_request(url, data, header, method, resolve, reject){
wx.request({
url: base_url + url,
data,
header,
method,
success: (res) => {
const data = res.data;
if (data.status != undefined && data.status == 'ok'){
resolve(data.data);
}else{
reject();
// 这里可以做一些错误的逻辑
}
},
fail: (res) => {
reject();
wx.showToast({
title: '接口出错了',
icon: 'none',
duration: 30000,
})
},
})
}
}
export {HTTP};
<web-view src="{{H5URL}}">web-view>
Page({
data: {
H5URL: ''
},
}),
onLoad: function (options) {
let url = decoedURIComponent(options.url);
this.setData({
H5URL: url
})
},
Page({
goToH5(e){
let url = e.target.dataset.url;// 伪代码
wx.navigateTo({
url: '/pages/webview/webview?url=' + encodeURIComponent(url)
})
}
})
<script src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
H5跳转到小程序路由 | 小程序路由 | 说明 |
---|---|---|
wx.miniProgram.navigateTo | wx.navigateTo | 使用方法与小程序一致 |
wx.miniProgram.navigateBack | wx.navigateBack | 使用方法与小程序一致 |
wx.miniProgram.switchTab | wx.switchTab | 使用方法与小程序一致 |
wx.miniProgram.reLaunch | wx.reLaunch | 使用方法与小程序一致 |
wx.miniProgram.redirectTo | wx.redirectTo | 使用方法与小程序一致 |
wx.miniProgram.postMessage | 向小程序发送消息,会在特定时机(小程序后退、组件销毁、分享)触发组件的message事件 1.7.1 | |
wx.miniProgram.getEnv | 获取当前环境 1.7.1 |
Page({
onChooseAddr(){
wx.chooseAddress({// 调用此方法即可获取用户收获地址
success(res){
console.log(res);// 这里就是用户收获地址信息
}
})
}
})
Page({
onChooseLocation(){
wx.chooseLocation({// 调用此方法即可选择用户地理位置
success(res){
console.log(res);// 这里就是用户选择的地理位置信息
}
})
}
})
Page({
onGetLocation(){
wx.getLocation({
type: 'wgs84', // 默认wgs84,返回gps坐标,但是小程序使用gcj02,返回可用不wx.openLocation的坐标
altitude: 'false', //默认false,传入true会返回高度信息,由于高度需要较高精确度,所以会减慢接口返回速度
success: () => {},
fail: () => {},
complete: () => {},
})
}
})
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
latitude | number | 是 | 纬度,范围为-90~90,负数表示南纬。使用 gcj02 国测局坐标系 | |
longitude | number | 是 | 经度,范围为-180~180,负数表示西经。使用 gcj02 国测局坐标系 | |
scale | number | 18 | 否 | 缩放比例,范围5~18 |
name | string | 否 | 位置名 | |
address | string | 否 | 地址的详细说明 | |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
wx.getLocation({
type: 'gcj02', //返回可以用于wx.openLocation的经纬度
success (res) {
const latitude = res.latitude
const longitude = res.longitude
wx.openLocation({
latitude,
longitude,
scale: 18
})
}
})