|
|
<script>
|
|
|
export default {
|
|
|
globalData: {
|
|
|
register_layer_status: false, //注册浮层是否显示 false--不显示 true--显示
|
|
|
|
|
|
order: {
|
|
|
// 我的地址ID
|
|
|
myAddressId: '',
|
|
|
// 是否手动选择过优惠券
|
|
|
isHasChooseCoupon: 0,
|
|
|
// 我的优惠券ID
|
|
|
myCouponId: ''
|
|
|
},
|
|
|
// 场景值,现微信小程序有该参数
|
|
|
scene: ''
|
|
|
},
|
|
|
|
|
|
onLaunch: function() {
|
|
|
console.log('App Launch')
|
|
|
let user_agent = this.cn.userAgent()
|
|
|
console.log('当前代理器:' + user_agent)
|
|
|
|
|
|
//(小程序环境)更新小程序版本
|
|
|
// #ifdef MP
|
|
|
if (uni.canIUse('getUpdateManager')) { //判断方法是否在当前版本可用
|
|
|
const updateManager = uni.getUpdateManager() //本API返回全局唯一的版本更新管理器对象,用于管理小程序更新
|
|
|
updateManager.onCheckForUpdate((res) => { //当向小程序后台请求完新版本信息,会进行回调
|
|
|
// console.log('onCheckForUpdate====', res)
|
|
|
// 请求完新版本信息的回调
|
|
|
if (res.hasUpdate) { //是否有新的版本
|
|
|
console.log('res.hasUpdate====')
|
|
|
updateManager.onUpdateReady(() => {
|
|
|
uni.showModal({
|
|
|
title: '更新提示',
|
|
|
content: '新版本已经准备好,是否重启应用?',
|
|
|
success: (res) => {
|
|
|
console.log('success====', res)
|
|
|
// res: {errMsg: "showModal: ok", cancel: false, confirm: true}
|
|
|
if (res.confirm) {
|
|
|
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
|
|
|
updateManager
|
|
|
.applyUpdate() //当新版本下载完成,调用该方法会强制当前小程序应用上新版本并重启
|
|
|
}
|
|
|
}
|
|
|
})
|
|
|
})
|
|
|
updateManager.onUpdateFailed(() => { //当新版本下载失败,会进行回调
|
|
|
// 新的版本下载失败
|
|
|
uni.showModal({
|
|
|
title: '已经有新版本了哟~',
|
|
|
content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~'
|
|
|
})
|
|
|
})
|
|
|
}
|
|
|
})
|
|
|
} else {
|
|
|
uni.showModal({
|
|
|
title: '提示',
|
|
|
content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
|
|
|
})
|
|
|
}
|
|
|
// #endif
|
|
|
|
|
|
// #ifdef APP-PLUS
|
|
|
|
|
|
// 监听返回键 安卓机型TABBAR页面点击2次返回退出应用
|
|
|
this.cn.listenBackButtonQuitApp([
|
|
|
'pages/mall/index',
|
|
|
'pages/mall/category',
|
|
|
'pages/mall/cart',
|
|
|
'pages/mine/index'
|
|
|
])
|
|
|
|
|
|
// 监听接收透传消息事件 ios需要开发者手动在receive透传回调中创建通知,安卓UniPush推送服务对透传消息的数据特定格式时做了特殊处理,监听不到该事件
|
|
|
plus.push.addEventListener('receive', (msg) => {
|
|
|
console.log('receive', msg)
|
|
|
if (this.cn.platform == 'ios') { //如果是IOS
|
|
|
//【APP离线】收到消息,但没有提醒(发生在一次收到多个离线消息时,只有一个有提醒,但其他的没有提醒)
|
|
|
//【APP在线】收到消息,不会触发系统消息,需要创建本地消息,但不能重复创建。必须加msg.type验证去除死循环
|
|
|
if (msg.aps) { // Apple APNS message
|
|
|
//APNS下发的消息,应用在前台
|
|
|
} else if ('LocalMSG' == msg.payload) { // 特殊payload标识本地创建的消息
|
|
|
//本地创建的消息,通常不需要处理
|
|
|
//注意:不要在这种情况下再此调用plus.push.createMessage,从而引起循环创建本地消息
|
|
|
} else {
|
|
|
// 接收到在线透传消息
|
|
|
// 创建本地消息,并添加到系统消息中心。发送的本地消息也会被receive方法接收到,但没有type属性,且aps是null
|
|
|
plus.push.createMessage(msg.content, msg.payload, {
|
|
|
title: msg.title
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
}, false)
|
|
|
|
|
|
// 监听系统通知栏消息点击事件
|
|
|
plus.push.addEventListener('click', function(msg) {
|
|
|
console.log('click', msg)
|
|
|
// 处理点击消息的业务逻辑代码
|
|
|
let payloadArr = msg.payload.split("_")
|
|
|
|
|
|
// 秒杀提醒 -- 跳转对应秒杀详情
|
|
|
if (payloadArr[0] == 'spikenotice') { //秒杀
|
|
|
setTimeout(res => {
|
|
|
uni.navigateTo({
|
|
|
url: 'pages/mall/spike/detail?id=' + payloadArr[1]
|
|
|
});
|
|
|
}, 500)
|
|
|
}
|
|
|
}, false)
|
|
|
// #endif
|
|
|
|
|
|
// #ifdef H5
|
|
|
if (user_agent == 'weixin') {
|
|
|
this.wx.setConfig() //注册微信JSSDK所有方法
|
|
|
}
|
|
|
// #endif
|
|
|
},
|
|
|
|
|
|
onShow: function(e) {
|
|
|
console.log('App Show')
|
|
|
|
|
|
// #ifdef APP-PLUS
|
|
|
setTimeout(function() {
|
|
|
// 当其它三方App通过scheme启动App时,可以通过plus.runtime.arguments获取完整的urlscheme字符串
|
|
|
let args = plus.runtime.arguments
|
|
|
// args = 'https://tp-universal.jucheng01.net/h5toapp?id=8'
|
|
|
console.log('--监听第三方渠道打开APP事件 接收到的参数--', args)
|
|
|
|
|
|
if (args) {
|
|
|
let param = new Object()
|
|
|
|
|
|
try {
|
|
|
// 处理JSON对象aj
|
|
|
param = JSON.parse(args)
|
|
|
|
|
|
// 若传入的参数不是JSON格式字符,需处理异常情况(一般为通过URL Scheme调用)
|
|
|
} catch (e) {
|
|
|
|
|
|
// 以//分割字符串
|
|
|
let paramStrArr = args.split("//")
|
|
|
|
|
|
// 没有传参数,不进行下面的操作
|
|
|
if (paramStrArr.length <= 1) {
|
|
|
return false
|
|
|
}
|
|
|
|
|
|
// 获取参数
|
|
|
let paramStr = paramStrArr[1]
|
|
|
|
|
|
// 以&分割多个参数
|
|
|
let jsonStr = paramStr.split("&") //多个参数组
|
|
|
|
|
|
// 组合参数数组
|
|
|
jsonStr.forEach((val, index) => {
|
|
|
let arr = val.split("=")
|
|
|
param[arr[0]] = arr[1]
|
|
|
})
|
|
|
|
|
|
//根据不同的类型不同的参数进行不同的操作
|
|
|
if (param.hasOwnProperty('type') && param.type == 'abc') {
|
|
|
console.log('--matched--')
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}, 1000);
|
|
|
// #endif
|
|
|
},
|
|
|
|
|
|
onHide: function() {
|
|
|
// console.log('App Hide')
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
<style>
|
|
|
@import url('components/colorui/main.css');
|
|
|
@import url('components/colorui/icon.css');
|
|
|
@import url('components/hzjc/style/common.css');
|
|
|
/* 汇总了自定义样式,自定义边框,自定义icon */
|
|
|
@import url('components/hzjc/style/iconfont/iconfont.css');
|
|
|
/*每个页面公共css */
|
|
|
</style>
|