flutter OneSignal取消订阅播放器ID抖动

xzlaal3s  于 2022-12-24  发布在  Flutter
关注(0)|答案(1)|浏览(112)

在我的情况下:我有两个选项可以推动:
1.使用玩家ID
1.使用段
我只想取消订阅玩家ID,并保留区段
我见过:

  1. OneSignalServices.instance.disablePush(true) =〉但它禁用了我所有的推送。
    1.通过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.**
用户注销时怎么办?

p8ekf7hl

p8ekf7hl1#

不要基于玩家ID发送通知,而是使用外部用户ID发送通知,并将您的玩家ID与外部用户ID进行Map。
在您的情况下,外部用户ID将是在登录时生成的随机字符串,并作为通知令牌存储在数据库中。然后将此令牌与玩家IDMap,当用户将注销时,只需从数据库中删除此令牌。
涉及步骤:
1.用户登录时

  • 生成一个随机字符串并将其作为通知令牌存储在数据库中。
  • 将此通知令牌Map到当前玩家ID。

假设外部用户ID ="123456789"; //您将向OneSignal SDK提供外部用户ID
//使用SDK版本3.9.3中提供的回调设置外部用户ID + OneSignal. shared. setExternalUserId(外部用户ID). then((结果){log(结果. toString()); }). catchError((错误){log(错误.到字符串()); });

  • Reference Link for mapping: https://documentation.onesignal.com/docs/external-user-ids#setexternaluserid-method
  • 基于此通知令牌发送通知。
  • Reference Link to create notification based on external User Id: https://documentation.onesignal.com/reference/create-notification#platform-to-deliver-to

1.用户注销时

  • 从数据库中删除通知令牌

希望这能有所帮助。

相关问题