uni-app_消息推送_华为厂商_unipush离线消息推送

一、创建项目

  • 打开 Hbuilder 创建一个新项目

uni-app_消息推送_华为厂商_unipush离线消息推送

  • 登录 DCloud 开发者中心,新建一个应用(注意: 上面第一步在 Hbuilder 创建新项目时,如果已经登录了 HBuilder 账号,那么下面这一步可以省略,HBuilder 会自动帮你创建好这个应用)

uni-app_消息推送_华为厂商_unipush离线消息推送

  • 创建好应用应该之后,复制 Appid,打开 manifest.json,将 uni-app 应用标识(Appid) 替换成我们新创建应用的 Appid

uni-app_消息推送_华为厂商_unipush离线消息推送
uni-app_消息推送_华为厂商_unipush离线消息推送

二、生成签名证书

uni-app 安卓证书生成有两种方式,一种是去 DCloud 开发者中心生成证书(下面我们就采用这种方式),另一种是安装 jre 环境,生成证书(参考链接 : https://ask.dcloud.net.cn/article/35777

  • 点击应用名称,
    uni-app_消息推送_华为厂商_unipush离线消息推送
  • 切换至【Android云端证书】,创建证书(生成证书一般需要 1-5 分钟时间)

uni-app_消息推送_华为厂商_unipush离线消息推送

  • 证书生成之后,点击证书详情,复制 MD5、SHA1、SHA256 备用

uni-app_消息推送_华为厂商_unipush离线消息推送

  • 切换至【各平台信息】,点击新增

uni-app_消息推送_华为厂商_unipush离线消息推送

  • 将之前复制 MD5、SHA1、SHA256 填写进去,包名可以自己定义(eg: com.app.uniPush)

uni-app_消息推送_华为厂商_unipush离线消息推送
uni-app_消息推送_华为厂商_unipush离线消息推送

三、开通 unipush 推送服务

  • 在【unipush】-【1.0(老版本)】-【应用信息】,选中我们上面创建的应用,我们这里只测试 Android 平台,所以勾选去掉 IOS,最后点击开通应用;
    uni-app_消息推送_华为厂商_unipush离线消息推送

四、客户端集成

  • 打开项目, 点击 manifest.json,选择【App模块配置】,否选【Push(消息推送)】,uniPush 消息推送图标,大家可自行配置;

uni-app_消息推送_华为厂商_unipush离线消息推送

扫描二维码关注公众号,回复: 17270171 查看本文章
  • 获取 cid(ClientId:个推业务层中的对外用户标识,用于标识客户端身份,由第三方客户端获取并保存到第三方服务端,是个推 SDK 的唯一识别号,简称 CID)

  • 在应用安装后第一次运行时应该调用 5+ API 的 plus.push.getClientInfoAsync 方法获取客户端标识。

  • 如果获取的 cid 为空,说明客户端向推送服务器注册还未完成,可以使用 setTimeout 延时重试

plus.push.getClientInfoAsync((info) => {
    
    
  let cid = info["clientid"];
});

四、制作自定义调试基座

  • 打开项目, 点击 manifest.json,选择【App模块配置】,否选【Push(消息推送)】,uniPush 消息推送图标,大家可自行配置;

uni-app_消息推送_华为厂商_unipush离线消息推送

  • 【运行】-【运行到手机或模拟器】-【制作自定义调试基座】

uni-app_消息推送_华为厂商_unipush离线消息推送

  • 打包需要的信息,都可通过 Dcloud 获取,可参考下的图
    uni-app_消息推送_华为厂商_unipush离线消息推送
  • 【运行】-【运行到手机或模拟器】-【运行到Android App 基座】
    uni-app_消息推送_华为厂商_unipush离线消息推送

五、开发者中心后台Web页面推送(仅支持在线推送)

  • 登录 DCloud 开发者中心,左侧选择【Uni Push】,打开消息推送页面,这里我们直接用 cid 向设备发送消息
  • 需要打开真机,获取到真机上面的 cid(clientid)
  • 当前消息推送仅支持在线推送,当 CID 在线(即 app 在前台打开运行)

uni-app_消息推送_华为厂商_unipush离线消息推送

  • 点击预览,输入cid,点击测试即可
  • 注意:如果提示 cid 不存在或应用错误,CID不存在或不属于此应用,请仔细检查一下 Appid 是否正确,是否有自定义基座,如果之前有安装过相同的应用可以先卸载之前的,重新安装;

uni-app_消息推送_华为厂商_unipush离线消息推送

六、离线消息推送

  • 若需要支持主流 android 厂商客户端接收离线推送,需要完成 :android 多厂商配置,下面以华为应用为例
  • 配置好厂商参数后请一定要提交云打包,并且使用“自有证书”打签名包;将云打包后的安装包安装到手机上,再获取cid 进行离线厂商推送测试,不可使用基座方式获取的 cid 进行离线厂商推送测试

1、创建华为开发者账号

  • 打开 开发华为开发者联盟,注册华为开发者帐号,帐号注册完后,需要完成实名认证才能享受华为开放的各类能力和服务

uni-app_消息推送_华为厂商_unipush离线消息推送

2、开通推送服务

uni-app_消息推送_华为厂商_unipush离线消息推送

  • 确认开通后,还需要在【配置】开通精准推送服务

uni-app_消息推送_华为厂商_unipush离线消息推送

3、创建项目

uni-app_消息推送_华为厂商_unipush离线消息推送uni-app_消息推送_华为厂商_unipush离线消息推送

  • 是否开开通分享服务,可根据需求自行选择uni-app_消息推送_华为厂商_unipush离线消息推送

4、添加应用

  • 在左侧导航栏选择【项目设置】,点击添加应用,将应用添加到我们新创建的项目中

uni-app_消息推送_华为厂商_unipush离线消息推送

uni-app_消息推送_华为厂商_unipush离线消息推送

5、添加SHA256证书指纹

  • 打开 Dcloud,点击证书详情,从里面找到 SHA256 复制粘贴到下图处即可

uni-app_消息推送_华为厂商_unipush离线消息推送

uni-app_消息推送_华为厂商_unipush离线消息推送

6、开通推送服务

  • 切换到【API管理】,开通推送服务

uni-app_消息推送_华为厂商_unipush离线消息推送

7、Dcloud 平台厂商推送配置

  • 下载 agconnect-services.json 文件,将该文件中 json 数据粘贴到 Dcloud 厂商配置中,见下图。

uni-app_消息推送_华为厂商_unipush离线消息推送

uni-app_消息推送_华为厂商_unipush离线消息推送

8、安装 app 到真机

  • 【发行】-【原生App-云打包】详细流程参请考上面的【制作自定义调试基座】

9、华为离线消息测试

uni-app_消息推送_华为厂商_unipush离线消息推送

uni-app_消息推送_华为厂商_unipush离线消息推送

-【 Android 配置】 - 【通知类型】 - initende 内容

intent:#Intent;action=android.intent.action.oppopush;launchFlags=0x14000000;component=安卓包名/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title=测试标题;S.content=测试内容;S.payload=test;end

  • 华为离线时,收不到消息推送,若厂商信息确认配置无误,那么注意以下两个地方
  1. 核对 Android 应用签名SHA256 是否填写正确

  2. 华为推送信息乱写的时候,是可能不被推送的,可以按照以下格式发送排查下:

    title:订单提醒
    body:您的外卖订单已接单,请耐心等候

10、获取 Device Token 发送消息

  • 华为端发送消息都是通过 token 进行推送,获取接收离线消息的设备 token
  • 打开 Dcloud,【unipush】-【消息推送】-【配置管理】-【故障排查】- 【状态查询】- 输入设备的 cid 即可查询到对应的 Device Token
    uni-app_消息推送_华为厂商_unipush离线消息推送
    uni-app_消息推送_华为厂商_unipush离线消息推送

猜你喜欢

转载自blog.csdn.net/aibujin/article/details/133169259