一、极光品平台流程
1. 首先要去极光平台注册账号
2. 在极光工作台创建应用
3. 服务集成
在服务集成的第二步中,应用包名要与HBuilderX中打包时的包名一致(包名需要以点号隔开,如:com.xx,小写开头)
这里的厂商通道配置根据自身项目情况酌情注册绑定,具体注册方案,移步官方厂商通道参数申请指南
4. SDK下载,此时可以在组装完成后下载 demo ,进行真机体验
切记:按照知道步骤来,配置生成二维码需要2至5分钟,耐心等待一下下,其实这个时候你不妨滚动一下滑轮,看一下步骤就知道啦
5. 免费受限
经过测试,这个免费的demo啊是免费版的极光服务,在终端(APP端)进程被结束之前是可以收到推送消息的,在所锁屏&一段时间静默后是无法收到推送消息的,官方解释是需要VIP,大家都懂的,具体原理是终端进程结束,链接断开了无法接收推送消息,需要加入VIP来通过各大厂商的渠道推送这个消息已达到息屏&结束进程后还能收到推送消息
至此,极光平台阶段搞定,目前的 推送集成 中 Android SDK 是没有的,检测不到,因为没有在项目中集成,接下来我们去项目中集成吧
二、HBuilderX测流程
1. 在自己的项目入口文件(App.vue)中添加如下代码,提示:注意根据需要修改对应的 Toast
<script>
var jpushModule = uni.requireNativePlugin('JG-JPush');
export default {
onLaunch: function () {
console.log('App Launch');
if (uni.getSystemInfoSync().platform == 'ios') {
// 请求定位权限
let locationServicesEnabled = jpushModule.locationServicesEnabled();
let locationAuthorizationStatus = jpushModule.getLocationAuthorizationStatus();
console.log('locationAuthorizationStatus', locationAuthorizationStatus);
if (locationServicesEnabled == true && locationAuthorizationStatus < 3) {
jpushModule.requestLocationAuthorization((result) => {
console.log('定位权限', result.status);
});
}
jpushModule.requestNotificationAuthorization((result) => {
let status = result.status;
if (status < 2) {
uni.showToast({
icon: 'none',
title: '您还没有打开通知权限',
duration: 3000
});
}
});
jpushModule.addGeofenceListener((result) => {
let code = result.code;
let type = result.type;
let geofenceId = result.geofenceId;
let userInfo = result.userInfo;
uni.showToast({
icon: 'none',
title: '触发地理围栏',
duration: 3000
});
});
// 监听deviToken的状态
jpushModule.addDeviceTokenListener((result) => {
let code = result.code;
if (code == 0) {
let deviceToken = result.deviceToken;
uni.showToast({
icon: 'none',
title: deviceToken,
duration: 3000
});
console.log('deviceToken:', deviceToken);
} else {
let error = result.msg;
}
});
}
jpushModule.initJPushService();
jpushModule.setLoggerEnable(true);
jpushModule.addConnectEventListener((result) => {
let connectEnable = result.connectEnable;
uni.$emit('connectStatusChange', connectEnable);
});
jpushModule.addNotificationListener((result) => {
let notificationEventType = result.notificationEventType;
let messageID = result.messageID;
let title = result.title;
let content = result.content;
let extras = result.extras;
uni.showToast({
icon: 'none',
title: JSON.stringify(result),
duration: 3000
});
});
jpushModule.addCustomMessageListener((result) => {
let type = result.type;
let messageType = result.messageType;
let content = result.content;
uni.showToast({
icon: 'none',
title: JSON.stringify(result),
duration: 3000
});
});
jpushModule.addInMessageListener((result) => {
uni.showToast({
icon: 'none',
title: JSON.stringify(result),
duration: 3000
});
});
jpushModule.addLocalNotificationListener((result) => {
let messageID = result.messageID;
let title = result.title;
let content = result.content;
let extras = result.extras;
uni.showToast({
icon: 'none',
title: JSON.stringify(result),
duration: 3000
});
});
},
onShow: function () {
console.log('App Show');
},
onHide: function () {
console.log('App Hide');
}
};
</script>
<style>
/*每个页面公共css */
</style>
2. 集成 SDK,这里呢引用官方的插件集成指南,有兴趣的可以去看一下
牵扯到打包体积,个人建议使用云端的插件集成
插件地址(JPush):极光推送 JPush 官方 SDK - DCloud 插件市场
插件地址(JCore):极光推送 JCore 官方 SDK - DCloud 插件市场
3. 项目配置环节
A. 在项目中,选中【manifest.json】--> 【基础配置】,这里的应用名称与前面创建极光创建的应用名称可以不一样,因为这个是打包后手机桌面显示的那个APP名称,而极光那个应用名称是极光平台的,跟这个没关系,二者是对接关系
B. 在项目中,选中【manifest.json】--> 【App配置模块】,勾选 【Push(消息推送)】,注意:uniPush 不要勾选
C. 在项目中,选中【manifest.json】--> 【App原生插件配置】,也就是上面第2步中的 集成 SDK 的产物,填写刚才在极光新建应用时生成的那个appKey
D. 在项目中,选中【manifest.json】--> 【源码视图】,填写 【package_name】和【bundle_id】,注意这里的 package_name 和 bundle_id 要与 极光注册项目时填写的安卓的 包名 和ios的 Bundle ID 一致
至此,HBuilder 配置 完成
接下来可以选择自定义插座 ↓,进行真机调试,无误后方可打包上线啦
友情提示,极光免费版广推消息每天条数有限,想要实现更多需要开通VIP方可实现推广自由