uniapp 超详细的极光推送对接流程

java后端极光推送请参考另外一篇文章

java 极光推送对接流程

场景

后台创建订单,前台手机app得到消息推送

原理

后台服务器调用极光接口->极光服务器->用户app。

参考地址

极光推送安装sdkapi
uniappJYJPush极光推送插件
自定义基座制作方法、常见问题等

准备工作

极光官网注册并创建应用获得Appkey,这里太简单了不细说。提一点可能会有问题的就是填写的app包名在这里获取
uniapp 超详细的极光推送对接流程_第1张图片

uniapp 超详细的极光推送对接流程_第2张图片

开始对接

1下载插件

uniapp插件下载地址

uniapp 超详细的极光推送对接流程_第3张图片
选择自己要试用的项目
uniapp 超详细的极光推送对接流程_第4张图片

2 配置插件

选择插件
hbuilder中-app 原生插件配置 ——选择云端插件——选择下载的极光插件
uniapp 超详细的极光推送对接流程_第5张图片
配置参数
App原生插件配置——云端插件——android_appkey
App原生插件配置——云端插件——android_channel
android_appkey填写极光你创建的应用的Appkey
android_channel渠道名称只是测试,填个android就行,自己有需求再自行替换。
uniapp 超详细的极光推送对接流程_第6张图片

3 自定义底座

复制一段话
解释一下:平时我们测试,链接手机直接运行,他会在手机上安装一个APP,这个时候可以直接打开调试,这个被称为标准基座;标准基座包含了uniapp基础的一些框架内部的东西,但是如果我们要调试第三方的插件SDK,就需要自定义基座;
简单来说,自定义基座就是标准基座 + 第三方的插件SDK组成,执照方法如下:(截图用的是Mac电脑演示,Windows也类似哈)
作者:JiYis
链接:https://www.jianshu.com/p/fb2ac886901b
来源:简书

选择制作自定义基座
uniapp 超详细的极光推送对接流程_第7张图片
确保下面点击了“打自定义调试基座”,然后打包即可
uniapp 超详细的极光推送对接流程_第8张图片
运行——运行到手机——运行基座选择——选择打的自定义基座。然后和普通调试一样,再运行到手机即可。

uniapp 超详细的极光推送对接流程_第9张图片

3 开始敲代码 很简单 1初始化 2监听 ,初始化必须执行!!!

初始化必须执行!!!

初始化必须执行!!!

初始化必须执行!!!

别名(alias)不设置也可以,后面测试目标选择广播就行。但是初始化必须执行!!!

1 初始化极光推出和设置别名(alias)初始化为必须的步骤。只用初始化一次,建议在app.vue的onLaunch中执行

    initJyJPush() {
      jyJPush.android_init(res => {
        //初始化成功成功之后再设置别名
        //官网的话:init后直接set操作有极大可能导致失败,可能会在回调里拿到6022,6002等,测试的时候可以做个7、8秒的延时,正式业务里一般配合用户注册使用,延时基本上够用
        //实际上:我设置成10s才管用
        setTimeout(()=>{
          console.log('setAlias');
          this.setAlias()
        },1000*10)//20秒后再设置别名
        console.log('init push res', res);
        uni.showToast({
          icon: 'none',
          title: JSON.stringify(res)
        })
      })

    },
    //设置别名
    setAlias(){
      jyJPush.setJYJPushAlias(
          {userAlias: 'testAlias22'},
          result => {
            console.log('setJYJPushAlias',JSON.stringify(result));
            uni.showToast({
              icon: 'none',
              title: JSON.stringify(result)
            })
          });
    },

初始化成功返回的是 {“errorCode”:“0”,“msg”:“调用完成”}
设置别名成功返回的是{“seq”:0,“iResCode”:0,“errorCode”:0,“alias”:“testAlias22”}
错误返回可能是6002,代表你重复调用,或者调用过快。虽然我按照官网说的六七秒延时,但是还是不行,直到设置成十秒才能成功。你可以设置时间长点
uniapp 超详细的极光推送对接流程_第10张图片

2 监听消息推送事件 监听推送点击事件

//监听消息推送事件
    watchPush() {
      jyJPush.addJYJPushReceiveNotificationListener(result => {
        //  监听成功后,若收到推送,会在result返回对应的数据;数据格式保持极光返回的安卓/iOS数据一致
        console.log(' watchPush result', result);
        uni.showToast({
          icon: 'none',
          title: JSON.stringify(result)
        })
      });
    },
    //监听推送点击事件
    watchPushClick() {
      jyJPush.addJYJPushReceiveOpenNotificationListener(result => {
//  监听成功后,若点击推送消息,会触发result;数据格式保持极光返回的安卓/iOS数据一致
        console.log(' ClickPush result', result);
        uni.showToast({
          icon: 'none',
          title: JSON.stringify(result)
        })
      });
    }

3测试

去官网 创建推送 ,平台选择安卓,标题内容随意,目标选择设备别名,内容填写上面代码设置别名里面设置的内容,比如上面我设置的是testAlias22,

注意

  • 免费版的通过极光后台广播推送的每天只能十次
  • 免费版的通过极光后单个别名推送也只能十次,换个别名就好了

uniapp 超详细的极光推送对接流程_第11张图片
uniapp 超详细的极光推送对接流程_第12张图片
点击发送预览 能看到这里预估人数是1 如果不是1那就代表上面代码没成功
uniapp 超详细的极光推送对接流程_第13张图片
然后手机就能收到通知了
如果发送成功但是手机没显示,手机设置下通知权限即可
uniapp 超详细的极光推送对接流程_第14张图片
推送记录也你能看到
uniapp 超详细的极光推送对接流程_第15张图片

其他注意

一个别名(alias)最多绑定十个设备
uniapp 超详细的极光推送对接流程_第16张图片
一次推送的tag最多只能二十个
uniapp 超详细的极光推送对接流程_第17张图片

你可能感兴趣的:(uniapp,前端,极光推送,前端,uni-app)