簡體   English   中英

OneSignal 取消訂閱 playerID flutter

[英]OneSignal Unsubscribe playerID flutter

就我而言:我有 2 個選項可以推送:

  1. 使用玩家 ID
  2. 使用段

我只想取消訂閱 Player ID,並保留 Segment

我見過:

  1. OneSignalServices.instance.disablePush(true) => 但它禁用了我所有的推送。
  2. 通過 API 刪除用戶:
 curl --include \ --request DELETE \ --header "Authorization: Basic YOUR_ONESIGNAL_API_KEY" \ https://onesignal.com/api/v1/players/ONESIGNAL_PLAYER_ID?app_id=YOUR_APP_ID

但是請按照我需要的 OneSignal 文檔Uninstall the app and re-install the app.

用戶登出時怎么辦?

不要根據玩家 ID 發送通知,而是使用外部用戶 ID 發送通知並將您的玩家 ID 映射到外部用戶 ID。

在您的情況下,外部用戶 ID 將是登錄時生成的隨機字符串,並作為通知令牌存儲在數據庫中。 然后將此令牌與玩家 ID 映射,當用戶注銷時,只需從數據庫中刪除此令牌即可。

涉及的步驟:

  1. 在用戶登錄時
  • 生成一個隨機字符串並將其作為通知令牌存儲在數據庫中。

  • 將此通知令牌映射到當前玩家 ID。

    讓 externalUserId = '123456789'; // 您將向 OneSignal SDK 提供外部用戶 ID

    // 使用 SDK 版本 3.9.3+ 中可用的回調設置外部用戶 ID OneSignal.shared.setExternalUserId(externalUserId).then((results) { log(results.toString()); }).catchError((error) { log (error.toString()); });

  • 映射參考鏈接: https ://documentation.onesignal.com/docs/external-user-ids#setexternaluserid-method

  • 根據這個通知令牌發送通知。

  • 基於外部用戶 ID 創建通知的參考鏈接: https ://documentation.onesignal.com/reference/create-notification#platform-to-deliver-to

  1. 用戶注銷時
  • 從數據庫中刪除通知令牌

希望這有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM