برنامه نویسی

یادآوری‌های پس‌زمینه و یادآوری‌های عامل: مدیریت یادآوری هوشمند HarmonyOS Next

Summarize this content to 400 words in Persian Lang
هدف این مقاله بررسی جزئیات فنی سیستم هارمونی او اس بعدی هواوی (در حال حاضر API12) و خلاصه کردن آن بر اساس شیوه‌های توسعه واقعی است. عمدتاً به عنوان حاملی برای به اشتراک گذاری و تبادل فناوری استفاده می شود و اشتباهات و حذفیات اجتناب ناپذیر است تا نظرات و سؤالات ارزشمندی را برای پیشرفت متقابل مطرح کنند. این مقاله محتوای اصلی است و هر گونه چاپ مجدد به هر شکلی باید منبع و نویسنده اصلی را ذکر کند.

در توسعه اپلیکیشن موبایل، عملکردهای یادآور به موقع و موثر برای بهبود تجربه کاربر بسیار مهم است. HarmonyOS Next عملکرد Agent-powered Reminder را ارائه می دهد که به برنامه عامل سیستم اجازه می دهد تا کارهای یادآوری مانند شمارش معکوس، تقویم، ساعت زنگ دار و غیره را پس از تعلیق برنامه در پس زمینه یا پایان فرآیند انجام دهد. این مکانیسم می تواند تضمین کند که کاربران اطلاعات یادآوری مهم را به موقع دریافت می کنند و در عین حال از مصرف بیش از حد منابع دستگاه توسط برنامه ها جلوگیری می کند.

انواع و مراحل توسعه یادآورهای عامل

HarmonyOS Next از سه نوع یادآوری عامل پشتیبانی می کند:

یادآوری شمارش معکوس: عملکرد یادآوری بر اساس شمارش معکوس، به عنوان مثال، یادآوری کاربر پس از 10 ثانیه شمارش معکوس.

یادآوری تقویم: عملکرد یادآوری بر اساس رویدادهای تقویم، مانند یادآوری کاربران در تاریخ و زمان خاص.

یادآوری آلارم: عملکرد یادآوری مبتنی بر ساعت، مانند یادآوری به کاربر برای بیدار شدن در ساعت 7 صبح هر روز.
مراحل توسعه:

درخواست اجازه دهید: فایل پیکربندی برنامه را اضافه کنید ohos.permission.PUBLISH_AGENT_REMINDER مجوزها

درخواست مجوز اعلان: تابع یادآوری عامل فقط پس از دریافت مجوز کاربر قابل استفاده است.

محتوای یادآوری را تعریف کنید: در صورت نیاز، محتوای یادآوری شمارش معکوس، تقویم یا زنگ هشدار، از جمله عنوان یادآور، محتوا، محتوای منقضی شده، کانال های اعلان و غیره را تعریف کنید.

یک یادآوری ارسال کنید: تماس بگیرید publishReminder رابط، وظایف یادآوری را منتشر می کند.

لغو یادآوری: در صورت نیاز تماس گرفته می شود cancelReminder یا cancelAllReminders رابط کار یادآوری را لغو می کند. ### کد نمونه: تنظیمات یادآوری شمارش معکوس، یادآوری‌های تقویم و یادآوری ساعت زنگ‌دار، مثال‌های کد زیر نحوه تنظیم سه نوع یادآوری عامل را نشان می‌دهد.
یادآوری شمارش معکوس:

import { reminderAgentManager } from ‘@kit.BackgroundTasksKit’;
import { notificationManager } from ‘@kit.NotificationKit’;
let targetReminderAgent: reminderAgentManager.ReminderRequestTimer = {
reminderType: reminderAgentManager.ReminderType.REMINDER_TYPE_TIMER,
triggerTimeInSeconds: 10,
actionButton: [{ title: ‘close’, type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_CLOSE }],
wantAgent: { pkgName: ‘com.example.myapplication’, abilityName: ‘EntryAbility’ },
maxScreenWantAgent: { pkgName: ‘com.example.myapplication’, abilityName: ‘EntryAbility’ },
title: ‘this is title’,
content: ‘this is content’,
expiredContent: ‘this reminder has expired’,
notificationId: 100,
slotType: notificationManager.SlotType.SOCIAL_COMMUNICATION
};
reminderAgentManager.publishReminder(targetReminderAgent).then((res: number) => {
console.info(‘Succeeded in publishing reminder. ‘);
let reminderId: number = res; // 发布的提醒 ID
}).catch((err: BusinessError) => {
console.error(`Failed to publish reminder. Code: ${err.code}, message: ${err.message}`);
});

یادآوری تقویم:

import { reminderAgentManager } from ‘@kit.BackgroundTasksKit’;
import { notificationManager } from ‘@kit.NotificationKit’;
let targetReminderAgent: reminderAgentManager.ReminderRequestCalendar = {
reminderType: reminderAgentManager.ReminderType.REMINDER_TYPE_CALENDAR,
dateTime: {
year: 2023,
month: 1,
day: 1,
hour: 11,
minute: 14,
second: 30
},
repeatMonths: [1],
repeatDays: [1],
actionButton: [
{ title: ‘close’, type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_CLOSE },
{ title: ‘snooze’, type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_SNOOZE }
],
wantAgent: { pkgName: ‘com.example.myapplication’, abilityName: ‘EntryAbility’ },
maxScreenWantAgent: { pkgName: ‘com.example.myapplication’, abilityName: ‘EntryAbility’ },
ringDuration: 5,
snoozeTimes: 2,
timeInterval: 5 * 60,
title: ‘this is title’,
content: ‘this is content’,
expiredContent: ‘this reminder has expired’,
snoozeContent: ‘remind later’,
notificationId: 100,
slotType: notificationManager.SlotType.SOCIAL_COMMUNICATION
};
reminderAgentManager.publishReminder(targetReminderAgent).then((res: number) => {
console.info(‘Succeeded in publishing reminder. ‘);
let reminderId: number = res; // 发布的提醒 ID
}).catch((err: BusinessError) => {
console.error(`Failed to publish reminder. Code: ${err.code}, message: ${err.message}`);
});

یادآوری آلارم:

import { reminderAgentManager } from ‘@kit.BackgroundTasksKit’;
import { notificationManager } from ‘@kit.NotificationKit’;
let targetReminderAgent: reminderAgentManager.ReminderRequestAlarm = {
reminderType: reminderAgentManager.ReminderType.REMINDER_TYPE_ALARM,
hour: 23,
minute: 9,
daysOfWeek: [2],
actionButton: [
{ title: ‘close’, type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_CLOSE },
{ title: ‘snooze’, type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_SNOOZE }
],
wantAgent: { pkgName: ‘com.example.myapplication’, abilityName: ‘EntryAbility’ },
maxScreenWantAgent: { pkgName: ‘com.example.myapplication’, abilityName: ‘EntryAbility’ },
ringDuration: 5,
snoozeTimes: 2,
timeInterval: 5 * 60,
title: ‘this is title’,
content: ‘this is content’,
expiredContent: ‘this reminder has expired’,
snoozeContent: ‘remind later’,
notificationId: 99,
slotType: notificationManager.SlotType.SOCIAL_COMMUNICATION
};
reminderAgentManager.publishReminder(targetReminderAgent).then((res: number) => {
console.info(‘Succeeded in publishing reminder. ‘);
let reminderId: number = res; // 发布的提醒 ID
}).catch((err: BusinessError) => {
console.error(`Failed to publish reminder. Code: ${err.code}, message: ${err.message}`);
});

جدول: مقایسه انواع هشدارهای عامل

نوع یادآوری
حالت ماشه
تنظیمات را تکرار کنید
دکمه اطلاع رسانی
سناریوهای قابل اجرا

یادآوری شمارش معکوس
شمارش معکوس به پایان می رسد
پشتیبانی نمی شود
بسته شدن
یادآوری های موقت، مانند شمارش معکوس جلسات

یادآوری تقویم
تاریخ و زمان را مشخص کنید
پشتیبانی از تکرار به صورت ماهانه یا روزانه
بستن، تاخیر
یادآوری های منظم مانند تولدها، سالگردها

یادآوری آلارم
زمان مشخص شده
پشتیبانی از تکرار به صورت هفتگی
بستن، تاخیر
یادآوری های روزانه، مانند زنگ بیدار شدن

مدیریت اعلان ها و بهینه سازی یادآورها

توسعه دهندگان می توانند استفاده کنند NotificationSlot برای مدیریت سبک ها و کانال های اعلان های یادآوری. با تنظیم متفاوت NotificationSlot، توسعه دهندگان می توانند سبک های اعلان شخصی و متنوع ایجاد کنند و کانال های مناسب را برای اعلان انتخاب کنند، مانند نوار اعلان سیستم، ویجت های دسکتاپ و غیره.
نمونه کد:

import { notificationManager } from ‘@kit.NotificationKit’;
let slot: notificationManager.Slot = {
slotType: notificationManager.SlotType.SOCIAL_COMMUNICATION,
slotId: 1,
name: ‘My Notification Slot’,
importance: notificationManager.Importance.HIGH,
description: ‘This is my custom notification slot’
};
notificationManager.addNotificationSlot(slot).then(() => {
console.info(‘Notification slot added successfully’);
}).catch((err: BusinessError) => {
console.error(`Failed to add notification slot. Code: ${err.code}, message: ${err.message}`);
});

نحوه درخواست مجوز یادآوری نماینده

برای جلوگیری از سوء استفاده از عملکرد یادآوری پروکسی، HarmonyOS Next آن را محدود و تنظیم می کند. توسعه دهندگان قبل از اینکه بتوانند از این عملکرد استفاده کنند، باید از مقامات هوآوی مجوز یادآوری نمایند.
روش کاربرد:

عبور کند hwpush@huawei.com به آدرس ایمیل رسمی هواوی مراجعه کنید.
موضوع ایمیل:【代理提醒权限申请】

متن ایمیل: شامل نام شرکت، نام برنامه، نام بسته برنامه، سناریوی استفاده، عنوان اعلان، متن اعلان، سناریوی اعلان، دفعات اعلان و سایر اطلاعات است. ### خلاصه یادآوری پروکسی HarmonyOS Next را با یک روش مدیریت یادآور هوشمند ارائه می‌کند که می‌تواند به طور موثر تجربه کاربر را بهبود بخشد و از مصرف بیش از حد منابع دستگاه توسط برنامه‌ها جلوگیری کند. ما می توانیم نوع یادآوری عامل مناسب را با توجه به نیازهای واقعی انتخاب کرده و ترکیب کنیم NotificationSlot مدیریت اعلان ها و بهینه سازی را انجام دهید. در عین حال، ما باید به کاربرد مجوز و مشخصات استفاده از یادآورهای عامل نیز توجه کنیم تا از سوء استفاده از این عملکرد جلوگیری کنیم.

هدف این مقاله بررسی جزئیات فنی سیستم هارمونی او اس بعدی هواوی (در حال حاضر API12) و خلاصه کردن آن بر اساس شیوه‌های توسعه واقعی است. عمدتاً به عنوان حاملی برای به اشتراک گذاری و تبادل فناوری استفاده می شود و اشتباهات و حذفیات اجتناب ناپذیر است تا نظرات و سؤالات ارزشمندی را برای پیشرفت متقابل مطرح کنند. این مقاله محتوای اصلی است و هر گونه چاپ مجدد به هر شکلی باید منبع و نویسنده اصلی را ذکر کند.

در توسعه اپلیکیشن موبایل، عملکردهای یادآور به موقع و موثر برای بهبود تجربه کاربر بسیار مهم است. HarmonyOS Next عملکرد Agent-powered Reminder را ارائه می دهد که به برنامه عامل سیستم اجازه می دهد تا کارهای یادآوری مانند شمارش معکوس، تقویم، ساعت زنگ دار و غیره را پس از تعلیق برنامه در پس زمینه یا پایان فرآیند انجام دهد. این مکانیسم می تواند تضمین کند که کاربران اطلاعات یادآوری مهم را به موقع دریافت می کنند و در عین حال از مصرف بیش از حد منابع دستگاه توسط برنامه ها جلوگیری می کند.

انواع و مراحل توسعه یادآورهای عامل

HarmonyOS Next از سه نوع یادآوری عامل پشتیبانی می کند:

  • یادآوری شمارش معکوس: عملکرد یادآوری بر اساس شمارش معکوس، به عنوان مثال، یادآوری کاربر پس از 10 ثانیه شمارش معکوس.
  • یادآوری تقویم: عملکرد یادآوری بر اساس رویدادهای تقویم، مانند یادآوری کاربران در تاریخ و زمان خاص.
  • یادآوری آلارم: عملکرد یادآوری مبتنی بر ساعت، مانند یادآوری به کاربر برای بیدار شدن در ساعت 7 صبح هر روز.
    مراحل توسعه
  • درخواست اجازه دهید: فایل پیکربندی برنامه را اضافه کنید ohos.permission.PUBLISH_AGENT_REMINDER مجوزها
  • درخواست مجوز اعلان: تابع یادآوری عامل فقط پس از دریافت مجوز کاربر قابل استفاده است.
  • محتوای یادآوری را تعریف کنید: در صورت نیاز، محتوای یادآوری شمارش معکوس، تقویم یا زنگ هشدار، از جمله عنوان یادآور، محتوا، محتوای منقضی شده، کانال های اعلان و غیره را تعریف کنید.
  • یک یادآوری ارسال کنید: تماس بگیرید publishReminder رابط، وظایف یادآوری را منتشر می کند.
  • لغو یادآوری: در صورت نیاز تماس گرفته می شود cancelReminder یا cancelAllReminders رابط کار یادآوری را لغو می کند. ### کد نمونه: تنظیمات یادآوری شمارش معکوس، یادآوری‌های تقویم و یادآوری ساعت زنگ‌دار، مثال‌های کد زیر نحوه تنظیم سه نوع یادآوری عامل را نشان می‌دهد.
    یادآوری شمارش معکوس
import { reminderAgentManager } from '@kit.BackgroundTasksKit';
import { notificationManager } from '@kit.NotificationKit';
let targetReminderAgent: reminderAgentManager.ReminderRequestTimer = {
  reminderType: reminderAgentManager.ReminderType.REMINDER_TYPE_TIMER,
  triggerTimeInSeconds: 10,
  actionButton: [{ title: 'close', type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_CLOSE }],
  wantAgent: { pkgName: 'com.example.myapplication', abilityName: 'EntryAbility' },
  maxScreenWantAgent: { pkgName: 'com.example.myapplication', abilityName: 'EntryAbility' },
  title: 'this is title',
  content: 'this is content',
  expiredContent: 'this reminder has expired',
  notificationId: 100,
  slotType: notificationManager.SlotType.SOCIAL_COMMUNICATION
};
reminderAgentManager.publishReminder(targetReminderAgent).then((res: number) => {
  console.info('Succeeded in publishing reminder. ');
  let reminderId: number = res; // 发布的提醒 ID
}).catch((err: BusinessError) => {
  console.error(`Failed to publish reminder. Code: ${err.code}, message: ${err.message}`);
});

یادآوری تقویم

import { reminderAgentManager } from '@kit.BackgroundTasksKit';
import { notificationManager } from '@kit.NotificationKit';
let targetReminderAgent: reminderAgentManager.ReminderRequestCalendar = {
  reminderType: reminderAgentManager.ReminderType.REMINDER_TYPE_CALENDAR,
  dateTime: {
    year: 2023,
    month: 1,
    day: 1,
    hour: 11,
    minute: 14,
    second: 30
  },
  repeatMonths: [1],
  repeatDays: [1],
  actionButton: [
    { title: 'close', type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_CLOSE },
    { title: 'snooze', type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_SNOOZE }
  ],
  wantAgent: { pkgName: 'com.example.myapplication', abilityName: 'EntryAbility' },
  maxScreenWantAgent: { pkgName: 'com.example.myapplication', abilityName: 'EntryAbility' },
  ringDuration: 5,
  snoozeTimes: 2,
  timeInterval: 5 * 60,
  title: 'this is title',
  content: 'this is content',
  expiredContent: 'this reminder has expired',
  snoozeContent: 'remind later',
  notificationId: 100,
  slotType: notificationManager.SlotType.SOCIAL_COMMUNICATION
};
reminderAgentManager.publishReminder(targetReminderAgent).then((res: number) => {
  console.info('Succeeded in publishing reminder. ');
  let reminderId: number = res; // 发布的提醒 ID
}).catch((err: BusinessError) => {
  console.error(`Failed to publish reminder. Code: ${err.code}, message: ${err.message}`);
});

یادآوری آلارم

import { reminderAgentManager } from '@kit.BackgroundTasksKit';
import { notificationManager } from '@kit.NotificationKit';
let targetReminderAgent: reminderAgentManager.ReminderRequestAlarm = {
  reminderType: reminderAgentManager.ReminderType.REMINDER_TYPE_ALARM,
  hour: 23,
  minute: 9,
  daysOfWeek: [2],
  actionButton: [
    { title: 'close', type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_CLOSE },
    { title: 'snooze', type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_SNOOZE }
  ],
  wantAgent: { pkgName: 'com.example.myapplication', abilityName: 'EntryAbility' },
  maxScreenWantAgent: { pkgName: 'com.example.myapplication', abilityName: 'EntryAbility' },
  ringDuration: 5,
  snoozeTimes: 2,
  timeInterval: 5 * 60,
  title: 'this is title',
  content: 'this is content',
  expiredContent: 'this reminder has expired',
  snoozeContent: 'remind later',
  notificationId: 99,
  slotType: notificationManager.SlotType.SOCIAL_COMMUNICATION
};
reminderAgentManager.publishReminder(targetReminderAgent).then((res: number) => {
  console.info('Succeeded in publishing reminder. ');
  let reminderId: number = res; // 发布的提醒 ID
}).catch((err: BusinessError) => {
  console.error(`Failed to publish reminder. Code: ${err.code}, message: ${err.message}`);
});

جدول: مقایسه انواع هشدارهای عامل

نوع یادآوری حالت ماشه تنظیمات را تکرار کنید دکمه اطلاع رسانی سناریوهای قابل اجرا
یادآوری شمارش معکوس شمارش معکوس به پایان می رسد پشتیبانی نمی شود بسته شدن یادآوری های موقت، مانند شمارش معکوس جلسات
یادآوری تقویم تاریخ و زمان را مشخص کنید پشتیبانی از تکرار به صورت ماهانه یا روزانه بستن، تاخیر یادآوری های منظم مانند تولدها، سالگردها
یادآوری آلارم زمان مشخص شده پشتیبانی از تکرار به صورت هفتگی بستن، تاخیر یادآوری های روزانه، مانند زنگ بیدار شدن

مدیریت اعلان ها و بهینه سازی یادآورها

توسعه دهندگان می توانند استفاده کنند NotificationSlot برای مدیریت سبک ها و کانال های اعلان های یادآوری. با تنظیم متفاوت NotificationSlot، توسعه دهندگان می توانند سبک های اعلان شخصی و متنوع ایجاد کنند و کانال های مناسب را برای اعلان انتخاب کنند، مانند نوار اعلان سیستم، ویجت های دسکتاپ و غیره.
نمونه کد

import { notificationManager } from '@kit.NotificationKit';
let slot: notificationManager.Slot = {
  slotType: notificationManager.SlotType.SOCIAL_COMMUNICATION,
  slotId: 1,
  name: 'My Notification Slot',
  importance: notificationManager.Importance.HIGH,
  description: 'This is my custom notification slot'
};
notificationManager.addNotificationSlot(slot).then(() => {
  console.info('Notification slot added successfully');
}).catch((err: BusinessError) => {
  console.error(`Failed to add notification slot. Code: ${err.code}, message: ${err.message}`);
});

نحوه درخواست مجوز یادآوری نماینده

برای جلوگیری از سوء استفاده از عملکرد یادآوری پروکسی، HarmonyOS Next آن را محدود و تنظیم می کند. توسعه دهندگان قبل از اینکه بتوانند از این عملکرد استفاده کنند، باید از مقامات هوآوی مجوز یادآوری نمایند.
روش کاربرد

  1. عبور کند hwpush@huawei.com به آدرس ایمیل رسمی هواوی مراجعه کنید.
  2. موضوع ایمیل:【代理提醒权限申请】
  3. متن ایمیل: شامل نام شرکت، نام برنامه، نام بسته برنامه، سناریوی استفاده، عنوان اعلان، متن اعلان، سناریوی اعلان، دفعات اعلان و سایر اطلاعات است. ### خلاصه یادآوری پروکسی HarmonyOS Next را با یک روش مدیریت یادآور هوشمند ارائه می‌کند که می‌تواند به طور موثر تجربه کاربر را بهبود بخشد و از مصرف بیش از حد منابع دستگاه توسط برنامه‌ها جلوگیری کند. ما می توانیم نوع یادآوری عامل مناسب را با توجه به نیازهای واقعی انتخاب کرده و ترکیب کنیم NotificationSlot مدیریت اعلان ها و بهینه سازی را انجام دهید. در عین حال، ما باید به کاربرد مجوز و مشخصات استفاده از یادآورهای عامل نیز توجه کنیم تا از سوء استفاده از این عملکرد جلوگیری کنیم.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا