vue h5+ 接入个推过程
hbuilder 中 manifest.json 模块配置 点击push 选择unipush(个推的升级版,包含个推)
直接打包,这就已经集成了推送模块
接下来打开dcloud后台配置 配置一大推(按教程来很简单)
好,配置完成,开始测试在线通知消息,先测试android吧(全部用户就是所有的用户-标签用户是给他一个标签,比如帅气,属于这个标签都会给他发帅气,cid一个手机只有一个,别名就是起个名字按照这个名字给你发)
发送成功,这时候手机上就会滴一声弹出来。
监听信息代码与点击推送代码
//监听消息点击事件
// 监听plusready事件
document.addEventListener( "plusready", function(){
console.log('+++++++++++++++++++')
// message = document.getElementById("message");
// 监听点击消息事件
plus.push.addEventListener( "click", function( msg ) {
console.log(22222)
// 判断是从本地创建还是离线推送的消息
switch( msg.payload ) {
case "LocalMSG":
console.log( "点击本地创建消息启动:" );
break;
default:
console.log( "点击离线推送消息启动:");
break;
}
let h = location.href
const n = h.indexOf('#')
const r = h.substr(n)
h = h.replace(r, '#/management')
// eslint-disable-next-line no-undef
const ws = plus.webview.create(h,`?result=ios`)
ws.show()
// 提示点击的内容
// plus.nativeUI.alert( msg.content );
// 处理其它数据
// this.logoutPushMsg( msg );
}, false );
// 监听在线消息事件
plus.push.addEventListener( "receive", function( msg ) {
if ( msg.aps ) { // Apple APNS message
console.log( "接收到在线APNS消息:" );
} else {
console.log( "接收到在线透传消息:",msg );
var u = navigator.userAgent, app = navigator.appVersion;
var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); // ios
if (isIOS) {
plus.nativeUI.alert( msg.content );
}
}
}, false );
}, false );
离线,离线比较麻烦需要走厂商推送通道,个推目前支持oppo vivo 华为 小米 …(需要法人的信息和公司的信息哦)
安卓到此结束
ios
ios比较简单需要带有push模块的证书,打包就完了。
获取信息设置别名与标签的代码
getPushInfo() {
var info = plus.push.getClientInfo();
console.log("id: " + info.id);
console.log("token: " + info.token);
console.log("clientid: " + info.clientid);
console.log("appid: " + info.appid);
console.log("appkey: " + info.appkey);
},
bindAliasAndTag(alias, tags) {
var isAndorid, PushManager, context, Instance, GeTuiSdk;
if (plus.os.name == 'Android') {
isAndorid = true;
} else {
isAndorid = false;
}
if (isAndorid) {
PushManager = plus.android.importClass("com.igexin.sdk.PushManager");
context = plus.android.runtimeMainActivity().getContext();
Instance = PushManager.getInstance();
} else {
GeTuiSdk = plus.ios.importClass("GeTuiSdk");
}
if (isAndorid) {
console.log('获取到cid==', Instance.getClientid(context));
console.log('获取到版本号==', Instance.getVersion(context));
console.log('获取到tags==', JSON.stringify(tags));
console.log('获取到alias==', alias);
//绑定别名
Instance.bindAlias(context, alias);
//绑定标签
var Tag = plus.android.importClass("com.igexin.sdk.Tag");
var tagParam = new Array();
var tag = new Tag();
tag.setName(tags);
tagParam= tag;
console.log('tagParam==', JSON.stringify(tagParam));
Instance.setTag(context, tagParam, Date.now() + "");
console.log(Instance,"这是什么")
} else {
console.log('获取到tags==', JSON.stringify(tags));
console.log('获取到alias==', alias);
GeTuiSdk.bindAliasandSequenceNum(alias, alias);
GeTuiSdk.setTags(tags);
}
},
控制消息是否发送的代码
import push from “@/common/dc-push/push.js”;hbuilder插件