【ACG】博主在专栏更新内容后,及时通知关注他的用户去阅读系列一 HarmonyOS鸿蒙Next

【ACG】博主在专栏更新内容后,及时通知关注他的用户去阅读系列一 HarmonyOS鸿蒙Next 业务场景

当用户打开应用时,系统发送Push消息给用户,向用户推荐博主信息。用户关注博主后,将保存用户的订阅信息,当关注的博主更新内容时,向订阅的用户发送短信,提醒用户及时查看最新内容。从而持续增强了用户的互动性。

向用户发送Push消息

  1. 在应用中集成推送服务

  2. 接收透传的Push消息。

  3. AndroidManifest.xml配置PushService,用于接收通知消息。

<service
    android:name=".ui.PushService"
    android:exported="false">
    <intent-filter>
        <action android:name="com.huawei.push.action.MESSAGING_EVENT" />
    </intent-filter>
</service>
<meta-data
    android:name="push_kit_auto_init_enabled"
    android:value="true" />
  1. PushService继承自HmsMessageService,处理接收到的消息后, 使用自定义通知显示消息。
private void processWithin10s(RemoteMessage message) {
    if (!TextUtils.isEmpty(message.getData())) {
        JSONObject object = new JSONObject(message.getData());
        String title = object.optString("title") + "";
        String content = object.optString("content") + "";
        String articleId = object.optString("articleId") + "";
        String authorId = object.optString("authorId") + "";
        NotificationUtils.sendNotify(this, title, content, articleId, authorId);
    }
}

使用云数据库存储信息

  1. 开通云数据库服务

  2. 新增和导出对象类型。新增AuthorArticleSubscriptionRecord表,具体字段请下载Demo参考对应类名的实体类。

  3. 新增存储区

  4. 集成云数据库SDK

  5. 初始化云数据库。

public static void initAGConnectCloudDB(Context context) {
    AGConnectCloudDB.AGConnectCloudDB.initialize(context);
}
  1. 调用getInstance(AGConnectInstance connectInstance, AGConnectAuth auth)方法获取对应数据处理位置的AGConnectCloudDB实例,并使用createObjectType创建对象类型。
mCloudDB = AGConnectCloudDB.getInstance(AGConnectInstance.getInstance(), AGConnectAuth.getInstance());
mCloudDB.createObjectType(ObjectTypeInfoHelper.getObjectTypeInfo());
  1. 创建Cloud DB zone配置对象,并打开该Cloud DB zone(以Cloud DB zone的同步属性为缓存模式、访问属性为公共存储区为例),详细请参考CloudDBZoneConfig
public void openCloudDBZoneV2() {
    mConfig = new CloudDBZoneConfig(ZONE_NAME,
            CloudDBZoneConfig.CloudDBZoneSyncProperty.CLOUDDBZONE_CLOUD_CACHE,
            CloudDBZoneConfig.CloudDBZoneAccessProperty.CLOUDDBZONE_PUBLIC);
    mConfig.setPersistenceEnabled(true);
    Task<CloudDBZone> openDBZoneTask = mCloudDB.openCloudDBZone2(mConfig, true);
    openDBZoneTask.addOnSuccessListener(cloudDBZone -> {
        mCloudDBZone = cloudDBZone;
        addSubscription();
    }).addOnFailureListener(e -> {
        callBack.onPhotoErrorMessage("OpenCloudDBZone Failed: " + e.getMessage());
    });
}
  1. 插入更新数据,用于存储新增或者修改的文章信息。
public void upsertArticle(Article article) {
    Task<Integer> upsertTask = mCloudDBZone.executeUpsert(article);
    upsertTask.addOnSuccessListener(cloudDBZoneResult -> {
        ArrayList<Article> articles = new ArrayList<>();
        articles.add(article);
        callBack.onUpdate(articles);
    }).addOnFailureListener(e -> callBack.onPhotoErrorMessage("upsert Error: " + e.getMessage()));
}
  1. 查询数据,用于查询所有文章信息。
public void queryAll() {
    Task<CloudDBZoneSnapshot<Article>> queryTask = mCloudDBZone.executeQuery(
            CloudDBZoneQuery.where(Article.class),
            CloudDBZoneQuery.CloudDBZoneQueryPolicy.POLICY_QUERY_FROM_CLOUD_ONLY);
    queryTask.addOnSuccessListener(snapshot -> {
        processQueryResult(snapshot);
    }).addOnFailureListener(e -> {
        callBack.onPhotoErrorMessage("queryAll Error: " + e.getMessage());
    });
}

由于篇幅较大,后续敬请关注下篇之博主在专栏更新内容后,及时通知关注他的用户去阅读系列二


更多关于【ACG】博主在专栏更新内容后,及时通知关注他的用户去阅读系列一 HarmonyOS鸿蒙Next的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

在HarmonyOS鸿蒙Next中,博主可以通过使用通知服务(Notification Service)来在专栏更新内容后及时通知关注他的用户。具体步骤如下:

  1. 创建通知渠道:首先,博主需要在应用中创建一个通知渠道(Notification Channel),用于管理通知的显示方式和行为。可以通过NotificationChannel类来创建并配置通知渠道。

  2. 构建通知:使用Notification.Builder类来构建通知。可以设置通知的标题、内容、图标等属性。例如,可以设置通知的标题为“专栏更新”,内容为“您关注的专栏已更新,请及时阅读”。

  3. 发送通知:通过NotificationManager类的notify方法发送通知。需要指定通知的唯一ID和构建好的通知对象。

  4. 处理用户点击通知:当用户点击通知时,可以通过设置PendingIntent来指定点击通知后要执行的操作。例如,可以打开专栏的详情页面。

  5. 更新通知:如果专栏内容有多次更新,可以通过更新通知的ID和内容来保持通知的实时性。

示例代码片段如下:

import notification from '@ohos.notification';

// 创建通知渠道
let channel: notification.NotificationChannel = {
    id: 'channel_id',
    name: '专栏更新',
    importance: notification.Importance.HIGH,
    description: '专栏更新通知'
};
notification.createNotificationChannel(channel);

// 构建通知
let notificationRequest: notification.NotificationRequest = {
    id: 1,
    content: {
        contentType: notification.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,
        normal: {
            title: '专栏更新',
            text: '您关注的专栏已更新,请及时阅读',
            additionalText: '系列一'
        }
    },
    slotType: notification.SlotType.SOCIAL_COMMUNICATION
};

// 发送通知
notification.publish(notificationRequest).then(() => {
    console.log('通知发送成功');
}).catch((err) => {
    console.error('通知发送失败', err);
});

通过以上步骤,博主可以在专栏更新后及时通知关注他的用户。

更多关于【ACG】博主在专栏更新内容后,及时通知关注他的用户去阅读系列一 HarmonyOS鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


作为ACG博主,在专栏更新关于HarmonyOS鸿蒙Next的内容后,可以通过以下方式及时通知关注者:

  • 平台推送:利用专栏平台的推送功能,直接向订阅用户发送更新通知。

  • 社交媒体:在微博、B站等平台发布动态,附上专栏链接,吸引粉丝阅读。

  • 社群互动:在粉丝群或论坛中分享更新内容,鼓励讨论和反馈。

  • 邮件通知:为忠实粉丝提供邮件订阅服务,确保他们第一时间获取更新。

通过这些方式,可以有效提升专栏的阅读量和用户互动。

回到顶部