wrs-jpush极光推送原生app插件
2021-06-04 本文已影响0人
浪人残风
前言
wrs-jpush是极光推送原生app插件
功能
- 别名alias、标签tag的设置
- 权限通知判断、跳到通知权限页面
- 设置手机号、极光服务器badge等
原生插件通用使用流程
购买插件,选择该插件绑定的项目。<br />
在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。<br />
根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。<br />
打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。<br />
开发完毕后正式云打包<br />
付费原生插件目前不支持离线打包。<br />
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android <br />
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
wrs-jpush插件
使用步骤:
极光推送平台申请应用
- 到极光推送官网创建一个应用,按照极光文档配置好Android的包名、iOS的证书(ios鉴权方式建议采用Token Authentication)等,记录下应用的AppKey
配置插件参数
- 在HBuilder X的App原生插件配置功能里集成WRSJpush插件,并配置如下参数:
appKey: 填写上一步极光推送平台上创建的应用的AppKey
channel: 苹果的渠道,一般填写appStore即可
isProduction:苹果环境是debug环境还是release环境,debug环境填0,release环境填1
JPUSH_PKGNAME:填写Android的包名
JPUSH_APPKEY:填写上一步极光推送平台上创建的应用的AppKey
JPUSH_CHANNEL:Android的打包渠道,如果没有进行渠道打包,一般填写appStore即可
插件API使用
- 注册用户点击了通知栏消息的回调
var jpush = uni.requireNativePlugin("wrs-jpush");
jpush.registerJPushClickRemoteMsgCallback((msg) => {
switch(uni.getSystemInfoSync().platform){
case 'android':
this.msg = '用户点击了通知栏消息:' + msg.msgId;
break;
case 'ios':
this.msg = '用户点击了通知栏消息:' + msg._j_msgid;
break;
default:
break;
}
});
- 注册registrationID
jpush.getRegistrationID((resp) => {
this.showMsg("获取为registrationID:" + resp.registerID);
});
Android会自动注册registerID,iOS需要手动调用
- 获取registrationID
jpush.getRegistrationID((resp) => {
this.showMsg("获取为registrationID:" + resp.registerID);
});
- 检查是否已经开启通知权限
jpush.isOpenNotificationEnable((resp) => {
var code = resp.code;
var desc = "";
if(code == 1) { // 通知权限已经开启
desc = "通知权限已经开启";
} else if(code == 0) { // 通知权限没有开启
desc = "通知权限没有开启";
} else { // 通知权限未知
desc = "通知权限未知";
}
this.showMsg(desc);
});
- 跳到对应设置页面开启通知权限
jpush.openSettingApp();
- 设置手机号
对App一段时间内无法收到推送的消息(可能由于断网、后台禁止运行、消息延迟等原因)的用户进行短信通道信息补充
var params = {};
params.mobileNumber = '18800000000';
jpush.setMobileNumber(params, (resp) => {
var code = resp.code;
if(code == 0) {
var alias = resp.alias;
this.showMsg("手机号设置成功");
} else {
this.showMsg("手机号设置失败:" + code);
}
});
- 设置别名
var params = {
'alias': "alias1"
};
jpush.setAlias(params, (resp) => {
var code = resp.code;
if(code == 0) {
var alias = resp.alias;
this.showMsg("别名alias设置成功:" + alias);
} else {
this.showMsg("别名alias设置失败, code:" + code);
}
});
- 获取别名
jpush.getAlias( (resp) => {
var code = resp.code;
if(code == 0) {
var alias = resp.alias;
this.showMsg("别名alias:" + alias);
} else {
this.showMsg("别名alias获取失败, code:" + code);
}
});
- 删除别名
jpush.deleteAlias( (resp) => {
var code = resp.code;
if(code == 0) {
this.showMsg("删除别名alias成功" );
} else {
this.showMsg("删除别名alias, code:" + code);
}
});
- 增加标签
var params = {
'tags': ["abc000"]
};
jpush.addTags(params, (resp) => {
var code = resp.code;
if(code == 0) {
var tags = resp.tags;
this.showMsg("增加标签tags成功:" + tags);
} else {
this.showMsg("增加tags失败, code:" + code);
}
});
- 设置标签
会覆盖现有标签
var params = {
'tags': ["tag0"]
};
jpush.setTags(params, (resp) => {
var code = resp.code;
if(code == 0) {
var tags = resp.tags;
this.showMsg("标签tags设置成功:" + tags);
} else {
this.showMsg("标签tags设置失败, code:" + code);
}
});
- 获取标签
jpush.getTags( (resp) => {
var code = resp.code;
if(code == 0) {
var tags = resp.tags;
this.showMsg("标签tags:" + tags);
} else {
this.showMsg("标签tags获取失败, code:" + code);
}
});
- 删除标签
var params = {
'tags': ["abc000"]
};
jpush.deleteTags(params, (resp) => {
var code = resp.code;
if(code == 0) {
var tags = resp.tags;
this.showMsg("删除标签tags成功:" + tags);
} else {
this.showMsg("删除标签tags失败, code:" + code);
}
});
- 设置JPush服务器中存储的badge值
var params = {};
params.badge = 10;
jpush.setBadge(params);
- 清空JPush服务器中存储的badge值
jpush.resetBadge();
- 设置app Icon的badge(仅对苹果有效)
一般app一启动就需要清空icon图标上的badge
var params = {};
params.badgeNum = 10;
jpush.resetBadge(params);
完整demo
<template>
<div>
<text>极光推送</text>
<text >日志:</text>
<text class="log">{{msg}}</text>
<view>
<button @click="setRegistrationID">注册registrationID</button>
<button @click="getRegistrationID">获取registrationID</button>
</view>
<view>
<button @click="isOpenNotificationEnable">检查是否已经开启通知权限</button>
<button @click="openSettingsForNotification">跳到对应设置页面开启通知权限</button>
</view>
<view>
<button @click="setMobileNumber">设置手机号</button>
</view>
<view>
<!-- <input type="text" placeholder="请输入别名alias" @input="aliasChange" :value="alias"/> -->
<button @click="setAlias">设置别名</button>
<button @click="getAlias">获取别名</button>
<button @click="deleteAlias">删除别名</button>
</view>
<view>
<!-- <input type="text" placeholder="请输入标签tag" @input="tagsChange" :value="tag"/> -->
<button @click="addTags">增加标签</button>
<button @click="setTags">设置标签</button>
<button @click="getTags">获取标签</button>
<button @click="deleteTags">删除标签</button>
</view>
<view>
<button @click="setBadge">设置JPush服务器中存储的badge值</button>
<button @click="resetBadge">清空JPush服务器中存储的badge值</button>
</view>
<view>
<button @click="setAppIconBadge">设置app Icon的badge(仅对苹果有效)</button>
</view>
</div>
</template>
<script>
// {
// "_j_business" = 1;
// "_j_data_" = "{\"data_msgtype\":1,\"push_type\":8,\"is_vip\":0}";
// "_j_msgid" = 20266417917185712;
// "_j_uid" = 51629423210;
// aps = {
// alert = {
// body = "\U6d4b\U8bd5\U5185\U5bb9";
// title = "\U6d4b\U8bd5\U6807\U9898";
// };
// badge = 1;
// "mutable-content" = 1;
// sound = default;
// };
// name = 123456;
// }
// var str = JSON.parse(msg.toJSONString);
var jpush = uni.requireNativePlugin("wrs-jpush");
export default {
data() {
return {
msg:"",
alias:"",
tag:""
}
},
onLoad() {
jpush.registerJPushClickRemoteMsgCallback((msg) => {
switch(uni.getSystemInfoSync().platform){
case 'android':
this.msg = '用户点击了通知栏消息:' + msg.msgId;
break;
case 'ios':
this.msg = '用户点击了通知栏消息:' + msg._j_msgid;
break;
default:
break;
}
});
},
methods:{
setRegistrationID: function(){
jpush.registerJPushRegistrationID((resp) => {
var code = resp.code;
if(code == 0) {
var registrationID = resp.registrationID;
this.showMsg("registrationID:" + registrationID);
} else {
this.showMsg("registrationID 注册失败, code:" + code);
}
});
},
getRegistrationID: function(){
jpush.getRegistrationID((resp) => {
this.showMsg("获取为registrationID:" + resp.registerID);
});
},
isOpenNotificationEnable: function(){
jpush.isOpenNotificationEnable((resp) => {
var code = resp.code;
var desc = "";
if(code == 1) { // 通知权限已经开启
desc = "通知权限已经开启";
} else if(code == 0) { // 通知权限没有开启
desc = "通知权限没有开启";
} else { // 通知权限未知
desc = "通知权限未知";
}
this.showMsg(desc);
});
},
openSettingsForNotification: function(){
jpush.openSettingApp();
},
setMobileNumber: function(){
var params = {};
params.mobileNumber = '18800000000';
jpush.setMobileNumber(params, (resp) => {
var code = resp.code;
if(code == 0) {
var alias = resp.alias;
this.showMsg("手机号设置成功");
} else {
this.showMsg("手机号设置失败:" + code);
}
});
},
setAlias: function(){
var params = {
'alias': "alias1"
};
jpush.setAlias(params, (resp) => {
var code = resp.code;
if(code == 0) {
var alias = resp.alias;
this.showMsg("别名alias设置成功:" + alias);
} else {
this.showMsg("别名alias设置失败, code:" + code);
}
});
},
getAlias: function(){
jpush.getAlias( (resp) => {
var code = resp.code;
if(code == 0) {
var alias = resp.alias;
this.showMsg("别名alias:" + alias);
} else {
this.showMsg("别名alias获取失败, code:" + code);
}
});
},
deleteAlias: function(){
jpush.deleteAlias( (resp) => {
var code = resp.code;
if(code == 0) {
this.showMsg("删除别名alias成功" );
} else {
this.showMsg("删除别名alias, code:" + code);
}
});
},
addTags: function(){
var params = {
'tags': ["abc000"]
};
jpush.addTags(params, (resp) => {
var code = resp.code;
if(code == 0) {
var tags = resp.tags;
this.showMsg("增加标签tags成功:" + tags);
} else {
this.showMsg("增加tags失败, code:" + code);
}
});
},
setTags: function(){
var params = {
'tags': ["tag0"]
};
jpush.setTags(params, (resp) => {
var code = resp.code;
if(code == 0) {
var tags = resp.tags;
this.showMsg("标签tags设置成功:" + tags);
} else {
this.showMsg("标签tags设置失败, code:" + code);
}
});
},
getTags: function(){
jpush.getTags( (resp) => {
var code = resp.code;
if(code == 0) {
var tags = resp.tags;
this.showMsg("标签tags:" + tags);
} else {
this.showMsg("标签tags获取失败, code:" + code);
}
});
},
deleteTags: function(){
var params = {
'tags': ["abc000"]
};
jpush.deleteTags(params, (resp) => {
var code = resp.code;
if(code == 0) {
var tags = resp.tags;
this.showMsg("删除标签tags成功:" + tags);
} else {
this.showMsg("删除标签tags失败, code:" + code);
}
});
},
aliasChange: function(e){
this.alias = e.target.value;
},
tagsChange: function(e) {
this.tag = e.target.value;
},
setBadge: function() {
var params = {};
params.badge = 10;
jpush.setBadge(params);
},
resetBadge: function(){
jpush.resetBadge();
},
setAppIconBadge: function(){
var params = {};
params.badgeNum = 10;
jpush.resetBadge(params);
},
showMsg: function(msg){
this.msg = msg;
}
}
}
</script>
<style>
.log{
width: 100%;
height: 100rpt;
}
.btn {
margin-top: 25rpt;
}
</style>