小程序转发分享
在方法里
- 首先调用
wx.showShareMenu()
并且需要设置withShareTicket
为true
。 - 当用户将小程序转发到任一群聊后,被别人打开,那么可以在
App.onLaunch
或者App.onShow
获取到一个shareTicket
。 - 通过
wx.getShareInfo
接口传入shareTicket
就可以获取到转发信息。
页面内发起转发
- 通过
button
组件设置属性open-type=“share”,可以在用户点击按钮后触发page.onShareAppMessage
事件
在ios里面 new date() 里面跟的参数字符串 需要把-换成/ .replace(/-/g, ‘/’)
获取当前日期的零时 时间戳
new Date(new Date().toLocaleDateString()).getTime();
小程序设置监听器
小程序监听器
在使用小程序的indexOf需要注意
- 首先不能在页面直接调用,小程序不支持在页面调用方法,需要使用wxs引入
- 定义一个js文件 在里面写方法 最后module 导出
function indexOf(array, value) {
return array.indexOf(value)
}
var tools = {
indexOf: indexOf
}
module.exports.tools = tools
- 在页面中通过wxs引入
<wxs src="../../utils/tool/tool.wxs" module="tools"></wxs>
- 最后在使用的地方
tools.tools.indexOf(seleIndexs,'1') !=-1?'selected':''
就可以使用了 - 最后一定要注意 匹配的数据的类型必须是一致的 类似于 ===
小程序左右滑动事件监听
<view class="main" bindtouchstart='touchStart' bindtouchmove='touchMove' bindtouchend="touchEnd"></view>
touchStart: function(e){
let sx = e.touches[0].pageX
let sy = e.touches[0].pageY
this.data.touchS = [sx,sy]
},
touchMove: function(e){
let sx = e.touches[0].pageX;
let sy = e.touches[0].pageY;
this.data.touchE = [sx, sy]
},
touchEnd: function(e){
let start = this.data.touchS
let end = this.data.touchE
if(end[0] && start[0] < end[0] - 50){
this.changeCurrentIndex(e,'reduce')
}else if(end[0] && start[0] > end[0] + 50){
this.changeCurrentIndex(e,'add')
}
this.data.touchE = [0, 0]
},
- 注意点击的时候只会记录初始位置 结束位置的值为[0,0]所以需要加判断结束位置不为o 这样可以排除点击误触
- 如果没有再触发滑动事件那么结束位置的坐标就不会发生改变 这样在触摸结束是 移动距离就不准确
小程序直接操作dom元素
获取和操作dom
长按事件
长按事件详解
小程序使用wxs模拟vue的过滤器
<wxs module="tools" src="../../utils/tools.wxs"></wxs>
var toPassWord = function (data) {
console.log(data);
}
module.exports = {
toPassWord: toPassWord
}
<view>{{tools.toPassWord(item.password)}}</view>
注意:
- 不能使用es6的新语法特性
- 例如:不能使用 const let定义
- 不能使用剪头函数
- 不能简写对象属性,必须对象属性和变量一起使用
- 引入的文件必须是.wxs 文件
小程序成功的回调
this.setData({ page: this.data.page+1 }, () => {
console.log('赋值成功')
})
初始化小程序 配置
const that = this;
const updateManager = wx.getUpdateManager()
updateManager.onUpdateReady(function () {
wx.showModal({
title: '更新提示',
content: '新版本已经准备好,是否重启应用?',
success(res) {
if (res.confirm) {
updateManager.applyUpdate()
}
}
})
})
wx.getNetworkType({
success(res) {
const networkType = res.networkType
if (networkType === 'none') {
that.globalData.isConnected = false
wx.showToast({
title: '当前无网络',
icon: 'loading',
duration: 2000
})
}
}
});