uBlock / AdBlocker阻止了OneSignal

问题描述

我正在实现Onesignal,但我注意到,如果用户激活了uBlock和/或AdBlocker chrome插件,它将被阻止。有没有办法使用iframe或以编程方式触发订阅? 到目前为止,这似乎是一个破坏交易的事情……

解决方法

我在这里看到了几个选项:

  1. 将 OneSignalSDK 文件放在您的托管存储(例如 AWS S3 存储桶)上并从那里加载。将受到更新的影响。
  2. 配置 nginx(如果使用它)将您域下的子域代理到外部目标,例如 here。或者这里和 example 使用 CloudFlare,但我相信您可能会找到其他的。

第二个选项实际上是唯一的一个,因为 SDK js 在下面使用相同的 cdn.onesignal.com URL,第一个选项不起作用。但另一种方法是要求用户允许向此 CDN 发出请求。