ホームページ >ウェブフロントエンド >uni-app >uniappでiOS通知を実装する方法

uniappでiOS通知を実装する方法

PHPz
PHPzオリジナル
2023-04-20 13:50:011037ブラウズ

スマートフォンの普及に伴い、携帯電話用アプリケーションが徐々に増加しており、ユーザーにリアルタイムで通知するために、オペレーティング システムにはメッセージ通知機能が提供されています。中でもiOSは世界のスマートフォン市場で重要なシェアを占めており、その通知機能が注目を集めています。 uniappフレームワークでiOS通知機能を実装するにはどうすればよいですか?

1. iOS 通知の基礎知識

通知とは、アプリケーションを開いたり閉じたりしたときにシステム レベルでポップアップ表示されるプロンプト メッセージを指します。 iOS の通知は、ローカル通知とリモート通知の 2 種類に分類されます。ローカル通知はアプリケーションによって直接トリガーされますが、リモート通知はサーバーによって APN (Apple Push Notification サービス) に送信されます。

ローカル通知は、アプリケーションの実行中に表示される UNUserNotificationCenter クラスの add メソッドを呼び出すことで追加できます。これには主に次のメソッドが含まれます:

// 配置通知内容
const content = {
  title: '通知标题',
  body: '通知内容',
  userInfo: {"key": "value"} // 附加数据
};

// 创建通知
const notification = {
  identifier: 'local-notification', // 首次显示时的标识符
  content: content,
  trigger: {
    repeats: false // 只显示一次
  }
};

// 添加通知
uni.addLocalNotification(notification);

リモート通知は主に次のものに依存します。完了する APN と通知の内容 構築とプッシュは両方ともサーバー側で行われます。

2. uniapp は iOS ローカル通知を実装します

uniapp は、各プラットフォームに適した統合 API をカプセル化します。iOS でローカル通知を実装したい場合は、UNUserNotificationCenter クラスの add メソッドを呼び出す必要があります。通知を公開します。 uniapp プロジェクトでは、uni.addLocalNotification メソッドを直接呼び出してローカル通知を実装できます。

uni.addLocalNotification メソッドを呼び出すときは、通知の内容とトリガー時間を含むオブジェクトを渡す必要があります。このうち、通知内容にはタイトル、内容、および任意の追加情報を含める必要があります。トリガーのタイミングは、時間、場所、ネットワーク状態の 3 つの方法に分けられます。このうち、時間トリガーでは、通知をループするかどうかを制御するために、repeats 属性を設定する必要があります。

実装プロセス中は、次の問題に注意する必要があります。

  1. iOS 通知は、アプリの実行中はデフォルトで表示されないため、注意する必要があります。現在の APP がフォアグラウンドにあるかどうかを判断します。
  2. 通知のトリガー時間には、現在のタイムゾーンを考慮する必要があります。

次は例です:

/**
 * 在指定时间触发通知,如果应用在前台则不展示
 */
function setNewLocalNotification() {
  const now = new Date();
  const nowStr = now.toLocaleTimeString();
  console.log(`当前时间:${nowStr}`);
  const hour = now.getHours() + 1;
  console.log(`下小时:${hour}`);
  const alarmTime = new Date();
  alarmTime.setHours(hour, 0, 0); // 设置下个小时整点触发
  console.log(`触发时间:${alarmTime.toLocaleTimeString()}`);
  let id = 1;
  uni.addLocalNotification({
    title: 'uniapp',
    body: '时间到了',
    userInfo: {"key": "value"}, // 可附加数据
    trigger: {
      date: alarmTime,
      repeats: false
    },
    identifier: `${id++}`,  
  });
  console.log('添加闹钟成功');
}

3. ブリッジ ファイルをインポートします

ローカル通知を実装する場合、アプリケーションの Info に対していくつかの構成を行う必要があります。プリスト。この部分の実装にはブリッジ ファイルをインポートする必要があるため、次の操作を実行する必要があります:

1. Xcode で uniapp プロジェクトを開き、[Build Phases] > [Copy Bundle Resources] を選択します。

2. ディレクトリ内の「com.apple.UNNotificationFramework.framework」ファイルを Nut Cloud のアプリケーション エクスプローラーにドラッグします。

3. Info.plist ファイルに通知承認リクエストの記述情報を追加します。内容は次のとおりです:

<key>NSUserNotificationAlertStyle</key>
<string>alert</string>
<key>NSUserNotificationEnabled</key>
<string>YES</string>
<key>NSUserNotificationCenterAlertsEnabled</key>
<string>YES</string>
<key>UIBackgroundModes</key>
<array>
    <string>fetch</string>
    <string>remote-notification</string>
</array>
<key>UNNotificationsUsageDescription</key>
<string>请允许我们发送通知</string>

4. まとめ

この記事では、 uniapp を使用して iOS ローカル通知メソッドを実装します。ローカル通知を追加すると、アプリケーションが実行されていないときでも、ユーザーにプッシュ メッセージを送信できます。実装プロセス中は、権限の取得とブリッジ ファイルのインポートに特別な注意を払う必要があります。

以上がuniappでiOS通知を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。