HarmonyOS 快速接入
最近更新:2024-04-25
展开全部
HarmonyOS 快速接入
本文旨要引导用户快速集成推送服务,详细集成步骤参考 SDK 集成指南 和 厂商参数申请指南。
SDK 下载详见 资源下载。
添加工程配置
配置har
entry 模块下的 oh-package.json5 配置
说明:关联 jpush-hmos-x.x.x-release.har,如,你复制 har 到 entry/hars/ 目录下,那么在 entry 模块下的 oh-package.json5 文件添加
"dependencies": {
"jg_harmony_har": "./hars/jpush-hmos-x.x.x-release.har" //这里的路径是你存放jpush-hmos-x.x.x-release.har的位置
}
"dependencies": {
"jg_harmony_har": "./hars/jpush-hmos-x.x.x-release.har" //这里的路径是你存放jpush-hmos-x.x.x-release.har的位置
}
此代码块在浮窗中显示
client_id 配置
entry 模块下的 module.json5 文件配置。
说明:
在本地工程配置 client_id, 在 entry 模块下的 module.json5 文件添加
"module": {
"metadata": [
{
"name": "client_id",
"value": "你的id"
}
]
}
"module": {
"metadata": [
{
"name": "client_id",
"value": "你的id"
}
]
}
此代码块在浮窗中显示
签署配置
在本地工程配置签署,如图
包名配置
在 AppScope 工程下的 app.json5 文件添加
{
"app": {
"bundleName": "你的包名",
}
}
{
"app": {
"bundleName": "你的包名",
}
}
此代码块在浮窗中显示
appKey 配置
appKey 需代码配置,需要在 AbilityStage 内配置,需在 init 之前配置。
export default class MyAbilityStage extends AbilityStage {
onCreate() {
JPushInterface.setAppKey("你的appKey") //在init之前调用
}
}
export default class MyAbilityStage extends AbilityStage {
onCreate() {
JPushInterface.setAppKey("你的appKey") //在init之前调用
}
}
此代码块在浮窗中显示
通知跳转页配置
entry 模块下的 module.json5 文件配置。
{
...
"exported": true,
"skills": [
{
"actions": [""], //actions一定要配置,没有可以配置空字符串
"uris": [
{
"scheme": "你的scheme",
"host": "你的host",
"port": "你的port",
"path": "你的path"
}
]
}
]
}
{
...
"exported": true,
"skills": [
{
"actions": [""], //actions一定要配置,没有可以配置空字符串
"uris": [
{
"scheme": "你的scheme",
"host": "你的host",
"port": "你的port",
"path": "你的path"
}
]
}
]
}
此代码块在浮窗中显示
申请打开通知开关
在首页申请
export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
notificationManager.requestEnableNotification().then(() => {
hilog.info(0x0000, TAG, '%{public}s', `requestEnableNotification success`);
}).catch((err: Base.BusinessError) => {
hilog.error(0x0000, TAG, '%{public}s', `requestEnableNotification failed, code is ${err.code}, message is ${err.message}`);
});
}
}
export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
notificationManager.requestEnableNotification().then(() => {
hilog.info(0x0000, TAG, '%{public}s', `requestEnableNotification success`);
}).catch((err: Base.BusinessError) => {
hilog.error(0x0000, TAG, '%{public}s', `requestEnableNotification failed, code is ${err.code}, message is ${err.message}`);
});
}
}
此代码块在浮窗中显示
初始化推送服务
- 在 init 之前要先设置 appKey
- 在 init 之前要先设置接收回调信息类
export default class MyAbilityStage extends AbilityStage {
onCreate() {
JPushInterface.setCallBackMsg(继承CallBackMsg的实体类)//接收回调信息//在init之前调用
JPushInterface.setAppKey("你的appKey")//在init之前调用
JPushInterface.init(this.context.getApplicationContext())
}
}
export default class MyAbilityStage extends AbilityStage {
onCreate() {
JPushInterface.setCallBackMsg(继承CallBackMsg的实体类)//接收回调信息//在init之前调用
JPushInterface.setAppKey("你的appKey")//在init之前调用
JPushInterface.init(this.context.getApplicationContext())
}
}
此代码块在浮窗中显示
配置权限(可选)
可选,为了更精准推送,申请结束后再调用init初始化接口
配置文件权限声明
配置文件权限声明, 在 entry 模块下的 src/main/module.json5 文件添加
{
"module": {
"requestPermissions": [
{
"name": "ohos.permission.APP_TRACKING_CONSENT",
"reason": "$string:reason",
"usedScene": {
"abilities": [
"EntryAbility" //一般要用首页
],
"when": "always"
}
}
]
}
}
{
"module": {
"requestPermissions": [
{
"name": "ohos.permission.APP_TRACKING_CONSENT",
"reason": "$string:reason",
"usedScene": {
"abilities": [
"EntryAbility" //一般要用首页
],
"when": "always"
}
}
]
}
}
此代码块在浮窗中显示
向用户申请授权
向用户申请授权,在首页 EntryAbility 中申请,然后再初始化,如:
const permissions: Array<Permissions> = ['ohos.permission.APP_TRACKING_CONSENT'];
export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
let context:Context = this.context;
let atManager:abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
atManager.requestPermissionsFromUser(context, permissions).then((data: PermissionRequestResult) => {
// 授权成功 //然后初始化
JPushInterface.init(this.context.getApplicationContext())
}).catch((err: BusinessError) => {
//然后初始化
JPushInterface.init(this.context.getApplicationContext())
})
}
const permissions: Array<Permissions> = ['ohos.permission.APP_TRACKING_CONSENT'];
export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
let context:Context = this.context;
let atManager:abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
atManager.requestPermissionsFromUser(context, permissions).then((data: PermissionRequestResult) => {
// 授权成功 //然后初始化
JPushInterface.init(this.context.getApplicationContext())
}).catch((err: BusinessError) => {
//然后初始化
JPushInterface.init(this.context.getApplicationContext())
})
}
此代码块在浮窗中显示
文档内容是否对您有帮助?