uniapp アプレット サブスクライブ メッセージ 複数の wx.requestSubscribeMessage wechat アプレット サブスクライブ メッセージ


ここに画像の説明を挿入

図のように、ニュース
公式ドキュメントを購読します:
Mini Program ニュース公式ドキュメントを購読

1. メッセージの種類
(1) ワンタイム購読メッセージ
ユーザーが個別に購読した後、開発者は対応するサービス メッセージを無期限に送信でき、各メッセージは個別に購読または購読解除できます。

(2) 長期メッセージ購読
ユーザーが一度購読すると、開発者は複数のメッセージを長期間送信することができます。
現在、長期購読ニュースは政務・民生、医療、交通、金融、教育などオフラインの公共サービスのみに公開されている。

(3) デバイス購読メッセージ
長期購読メッセージのタイプに属し、
WeChat によって認証された非個人主体アプレットを使用するには「デバイス アクセス」を完了する必要があります。スマート ハードウェアのメーカーまたは開発者向け

一般に、1 回限りのサブスクリプション メッセージで需要を満たすことができるため、ここでは主に 1 回限りのサブスクリプション メッセージについて説明します。

2. メインプロセス
(1). https://mp.weixin.qq.comアプレットのバックグラウンドにログインしてメッセージ テンプレートを取得し、適切なテンプレートがない場合は、新しいテンプレートの追加を申請できます。承認後使用可能となります。
(2). フロントエンドは、wx.requestSubscribeMessage(Object object)インターフェイスを呼び出して、クライアント アプレットを呼び出してメッセージ インターフェイスにサブスクライブし、ユーザーのサブスクリプション メッセージの操作結果を返します。
ユーザーが購読パネルで「常に上記の選択を保持し、再度質問しない」にチェックを入れると、テンプレート メッセージがユーザーのアプレット設定ページに追加され、関連するテンプレート メッセージに対するユーザーの購読ステータスをwx.getSetting インターフェース。
wx.getSetting

3. サーバーは、サブスクリプション メッセージを送信するインターフェイスを呼び出します。
詳細については、サーバー インターフェイスのsubmitMessage.sendを参照してください。

簡単な例:

//订阅消息
subscribe() {
    
    
	let tmplId1 ='*********'//消息模板id1
	let tmplId2 ='*********'//消息模板id2
	wx.requestSubscribeMessage({
    
    
		tmplIds: [tmplId1,tmplId2],
		success: (res) => {
    
    
			console.log(res,"订阅成功")
		},
		fail(err) {
    
    
			console.log(err,"订阅失败")
		}
	})
}

予防

1. 認可ポップアップ ウィンドウは、ユーザーがクリックして表示する必要があります。たとえば、onload メソッド内で直接呼び出すことはできません。ポップアップ ウィンドウを表示する必要がある場所にクエリを作成できます。をクリックして承認を取得するようにユーザーを誘導します (または、承認をクリック イベントに追加します。たとえば、申請が正常に送信された後に [払い戻しの申請] をクリックするなど)。
ユーザーはイベントをクリックして、承認ワンタイム サブスクリプション ウィンドウをトリガーします。

2. 開発ツールは同時に 2 つのメッセージをサブスクライブしませんので、実際のデバイスで直接テストすることをお勧めします。

3. 一度に購読できるメッセージは 3 つまでです。永続メッセージとワンタイム メッセージを同時に購読することはできません。

ここに画像の説明を挿入
**

拡張(カプセル化)

**

/**
 * 订阅消息
 * @param {
    
     Array } [tmplIds]
 * @returns {
    
     Promise<Object> }
 */
export const subscribeMessage = (tmplIds = []) => {
    
    
    console.log('tmplIds',tmplIds);
  return new Promise((resolve, reject) => {
    
    
    wx.requestSubscribeMessage({
    
    
      tmplIds,
      success(res) {
    
    
        // 订阅成功
        if (res[tmplIds[0]] === 'accept'||res[tmplIds[1]] === 'accept') {
    
    
          resolve(res)
        } else {
    
    
          reject(res)
        }
      },
      fail: reject
    })
  })
}

認可の成功と失敗に関連するコールバック
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/maoge_666/article/details/130363484