【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(4)

1.问题描述:

目前华为推送API使用的是v2或者v1版本,请问目前最新的鸿蒙next使用v3版本是否兼容v2或者v1,反过来将v2或者v1的api可以推送鸿蒙next的设备吗?

解决方案:

v3接口兼容向非HarmonyOS NEXT设备推送,老版本接口不兼容向HarmonyOS NEXT设备推送。

2.问题描述:

获取Push Token报错 Get push token catch error: 1000900010 Illegal application identity.

解决方案:

检查以下配置项是否正确:

1、确认AppGallery Connect上配置的应用签名证书指纹与应用实际证书是否一致, API 9以上应用需要选择"添加公钥指纹 (HarmonyOS API 9及以上)"的方式配置。
https://developer.huawei.com/consumer/cn/doc/app/agc-help-signature-info-0000001628566748#section5181019153511

2、在项目模块级别下的src/main/module.json5(例如entry/src/main/module.json5)中配置client_id,需要使用项目设置->常规页面->应用->OAuth 2.0客户端ID(凭据)中的Client ID。
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/push-preparations-0000001727885250#section792641732919

注意:配置证书指纹后生效需要一定时间,建议30-60分钟后重试。

3.问题描述:

  1. push-type=0的普通消息如果要带图片,是否要先调图片风控接口?

  2. 图片风控接口返回的expireTime最长截止时间是多久?

解决方案:

1、目前发送 push-type:0 通知消息未限制必须图片风控,图片符合文档说明规格即可。
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/push-send-alert-0000001862404293-V5#section62011739001

2、expireTime 一般为7天。

4.问题描述:

应用在AppGallery Connect申请了调试证书、开启了推送服务,app项目中配置了调试证书签名,应用也配置了client_id,但是获取token失败,报错信息 get token fail:, {error.name:Error, error.message:Illegal application identity.} ,json:{"code":1000900010}}

解决方案:

1,在API管理中,打开相关服务的API。会有一定的延迟,一般有10分钟左右。

2, 应用在AppGallery Connect上创建时未选择HarmonyOS应用类型。

3,module.json5文件中metadata节点下clientid写正确。需要直接写client_id的信息,不能通过$符引用资源文件中的值,当前无法解析这种引用方式。

4,签名证书使用这个选项中的 配置方式 "选择SHA256公钥指纹''。

a、生成配置指纹: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/push-preparations-0000001727885250#section388942317518

b、配置证书指纹: https://developer.huawei.com/consumer/cn/doc/app/agc-help-signature-info-0000001628566748#section5181019153511 如果以上方式无法解决,请通过如下方式抓取日志以便分析,联系方式https://developer.huawei.com/consumer/cn/support/feedback/#/:

  1. 执行:hdc hilog > xxxx.log

  2. 复现场景

  3. 停止脚本执行

  4. 在目录下获取日志信息

5.问题描述:

推送VoIP呼叫消息和音视频界面是都内置的吗?开发者是否只需配置一个UI其他方面不用考虑?

解决方案:

1、音视频页面应用需要自定义,文档示例代码提供的页面效果仅供开发参考,不代表最终效果。

2、VoIP呼叫消息负责拉起应用的进程,在进程内完成通话状态上报弹出呼叫横幅通知,监听通话状态回调,被呼叫页面加载等操作。铃声、震动、音视频效果等需要开发者自行适配完成。
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/push-voip-V5

6.问题描述:

通知扩展消息体现:

push-type: 2
// Request Body
{ 
  "payload": { 
    "extraData": "通知扩展场景携带的额外数据", 
    "notification": { 
      "category": "EXPRESS",  
      "title": "通知标题", 
      "body": "通知内容", 
      "clickAction": { 
        "actionType": 0 
      } 
    }
  }
}

notification这部分信息是否会以通知方式展示?如果展示,那么和onReceiveMessage要返回的RemoteNotificationContent有什么区别?

extraData这部分信息是不是通过onReceiveMessage方式传递?

解决方案:

  1. notification-----这部分信息是否会以通知方式展示?

会在RemoteNotificationContent中return中展示

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/push-send-extend-noti-V5

  1. extraData------这部分信息是不是通过onReceiveMessage方式传递?

扩展消息是可以通过onReceiveMessage 获取。

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/push-remote-extension-ability-V5?catalogVersion=V5

  1. onReceiveMessage如果返回空是什么结果?

有可能是没有扩展消息的权限

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/push-apply-right-V5#section159981112245