uniapp+個推,實現推送

<template>
<view>
<textarea v-model="tranMsg" />
-------------------------
<textarea v-model="cid" />
+++++++++++++++++++++++
<textarea v-model="ccid" />
<!-- <view class="uni-padding-wrap" v-if="provider[0]">
<view class="uni-btn-v uni-common-mt">
<button type="primary" @tap="openPush">開啓push</button>
<button type="primary" @tap="closePush">關閉push</button>
<button type="primary" @tap="listenTranMsg">監聽透傳數據</button>
<button type="primary" @tap="removeTranMsg">移除監聽透傳數據</button>
</view>
<view class="uni-btn-v uni-common-mt">
<button type="primary" @tap="requireTranMsg">發送"透傳數據"消息</button>
</view>
<view class="uni-title uni-common-mt">透傳內容:</view>
<view class="uni-textarea">
<textarea v-model="tranMsg" />
</view>
</view> -->
</view>
</template> 
<script>
export default {
data() {
return {
title: 'push',
provider: [],
pushServer: 'http://demo.dcloud.net.cn/push/?',
tranMsg:'',
cid:'',
ccid:''
}
},
 
onLoad: function () {
uni.getProvider({
service: "push",
success: (e) => {
console.log("success", e);
this.provider = e.provider;
},
fail: (e) => {
console.log("獲取推送通道失敗", e);
}
});
},
onUnload:function(){
this.tranMsg = '';
 
},
mounted(){
// 默認開啓接受PUSH
this.openPush();
// 默認開啓監聽透傳
this.listenTranMsg();
},
methods: {
 
openPush() {
var that=this;
var cid = plus.device.uuid;
var clientid;  
       var timer=setInterval(function(){  
         if(clientid!=null && clientid!="null")  
         {  
            clearInterval(timer);  
            return;  
         }  
         clientid=plus.push.getClientInfo().clientid;  
that.ccid = clientid;
},1000); 
 
console.log('==CID=='+cid);
this.cid=cid;
uni.subscribePush({
provider: this.provider[0],
success: (e) => {
console.log('開啓接受PUSH');
//  uni.showToast({
//  title: "已開啓push接收"
//  })
}
})
},
 
closePush() {
uni.unsubscribePush({
provider: this.provider[0],
success: (e) => {
uni.showToast({
title: "已關閉push接收"
})
}
})
},
listenTranMsg() {
uni.onPush({
provider: this.provider[0],
success: (e) => {
console.log('開啓監聽');
//  uni.showToast({
//  title: "開始監聽透傳數據"
//  })
},
callback: (e) => {
uni.showToast({
title: "接收到透傳數據"
});
 
this.tranMsg = JSON.stringify(e.data);
}
})
},
removeTranMsg() {
uni.offPush({
provider: this.provider[0],
success: (e) => {
console.log("移除監聽透傳數據");
uni.showToast({
title: "移除監聽透傳數據"
})
}
})
},
requireTranMsg() { //請求‘透傳數據’推送消息
var inf = plus.push.getClientInfo();
 
var url = this.pushServer + 'type=tran&appid=' + encodeURIComponent(plus.runtime.appid);
inf.id && (url += '&id=' + inf.id);
url += ('&cid=' + encodeURIComponent(inf.clientid));
if (plus.os.name == 'iOS') {
url += ('&token=' + encodeURIComponent(inf.token));
}
url += ('&title=' + encodeURIComponent('Hello uniapp'));
url += ('&content=' + encodeURIComponent('帶透傳數據推送通知!'));
if(plus.os.name === 'iOS'){
url += ('&payload=' + encodeURIComponent('{"title":"Hello uniapp Test","content":"test content"}'));
}else{
url += ('&payload=' + encodeURIComponent('\'{"title":"Hello uniapp Test","content":"test content"}\''));
}
url += ('&version=' + encodeURIComponent(plus.runtime.version));
plus.runtime.openURL(url);
}
}
}
</script>
 
<style>
 
</style>
相關文章
相關標籤/搜索