OneSignal:约 30 分钟
创建 OneSignal 应用,为 iOS 添加 APNs 密钥、为 Android 添加 Firebase 凭据,把 App ID 粘贴到 oneSignalID(Config.swift)和 Android 构建配置中,打开启用选项,重新构建。iOS 推送文档和Android 推送文档中附有截图。
原生功能
推送通知是审核人员最先注意到、用户保留最久的原生功能。WebViewGold 支持 OneSignal、Pushwoosh 和 Firebase Cloud Messaging,每个都只需一个配置开关,此外还支持完全不需要任何服务的本地通知。下面介绍它们的区别,以及哪一个适合 Vibe Coding 应用。
每个平台一次性 $109 起,或由我们的团队全程代劳,$698 起。
| OneSignal | Pushwoosh | Firebase Cloud Messaging | |
|---|---|---|---|
| 控制台 | 完整的活动控制台:分群、模板、定时发送、用户旅程、A/B 测试 | 面向营销的控制台,支持分群、标签和自动化 | Firebase 控制台中的基础活动编辑器;通过主题和分析受众进行定向 |
| 通过代码发送 | REST API,可按订阅 ID 或您的外部用户 ID 发送 | REST API | 从 Cloud Functions 或您的服务器使用 Admin SDK,按 token 或主题发送 |
| Config.swift 中的开关 | oneSignalID + kPushEnabled | kPushwooshEnable + Info.plist 中的 Pushwoosh_APPID | kFirebasePushEnabled + GoogleService-Info.plist |
| Config.java 中的开关 | PUSH_ENABLED + build.gradle 中的 ID | PUSHWOOSH_ENABLED + strings.xml 和 AndroidManifest.xml 中的 ID | FIREBASE_PUSH_ENABLED + google-services.json |
| Web 应用中的单用户 ID | getonesignalplayerid:// → onesignalplayerid,或通过 kPushEnhanceUrl 在首次请求中附带 ?onesignal_push_id= | getpushwooshid:// → pushwooshplayerid,或通过 kPushwooshEnhanceUrl 附带 ?pushwoosh_id= | getfirebaseplayerid:// → firebaseplayerid,或通过 kFirebaseEnhanceUrl 附带 ?firebase_push_id=;可选 firebaseTopic |
| 点击后打开深度链接 | 附加数据字段“url”(不是 Launch URL 字段) | 消息中的自定义数据 | 自定义数据键“url” |
| Apple 证书 | 在 OneSignal 控制台上传 APNs 密钥(.p8) | 在 Pushwoosh 中导入证书或密钥 | 把 APNs 密钥上传到 Firebase 项目 |
| 费用 | 有限额的免费方案,超出后为付费方案 | 免费试用;WebViewGold 用户可额外免费使用两个月 | 发送免费;您只需为自己的服务器或 Cloud Functions 付费 |
| 最适合 | 想要分群和模板、又不想写代码的营销团队 | 需要营销自动化和多渠道消息的团队 | 已经在用 Firebase、以编程方式发送推送的应用 |
创建 OneSignal 应用,为 iOS 添加 APNs 密钥、为 Android 添加 Firebase 凭据,把 App ID 粘贴到 oneSignalID(Config.swift)和 Android 构建配置中,打开启用选项,重新构建。iOS 推送文档和Android 推送文档中附有截图。
创建 Pushwoosh 应用,导入 iOS 证书或密钥以及 Android 凭据,在 Info.plist 以及 strings.xml 和 AndroidManifest.xml 中设置应用 ID,启用开关,重新构建。
在您的 Firebase 项目中注册 bundle ID 和包名,把两个配置文件下载到项目中,在 Cloud Messaging 下上传 APNs 密钥,启用开关。Firebase 的注册是永久的,所以请先确定好 bundle ID。
在应用打开时由 JavaScript 安排,稍后由设备推送。不需要账号,不需要密钥,也不需要服务器。
控制台可以发送给所有人或某个分群。要通知某个特定用户(“您的订单已发货”),请把设备的订阅 ID 保存在数据库中该用户的记录旁边。三个服务商都适用同样的模式;这里以 OneSignal 为例。
const inApp = /WebViewGoldApp/.test(navigator.userAgent);
async function savePushId(userId) {
if (!inApp) return;
window.location.href = "getonesignalplayerid://"; // WebViewGold 会设置 window.onesignalplayerid
await new Promise(r => setTimeout(r, 800));
const pushId = window.onesignalplayerid; // Firebase:window.firebaseplayerid,Pushwoosh:window.pushwooshplayerid
if (!pushId) return;
await fetch("/api/me/push-id", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ userId, pushId }) });
}
// 然后从后端发送:调用 OneSignal REST API,并传入 include_subscription_ids: [pushId]
// 提示:把 autoInjectVariable(iOS)/ AUTO_INJECT_VARIABLES(Android)设为 true,无需调用即可获得这些变量。
我很高兴购买了这个应用!非常简单,文档也很棒。联系客服后,他们回复很快且非常友好,一天之内就解决了我的问题。10/10,值得推荐。
WebViewGold 可以通过 JavaScript 安排一条在应用关闭后才触发的通知:sendlocalpushmsg://push.send?s=SECONDS=msg!MESSAGE&!#TITLE&!#URL,其中的 URL 会在用户点击通知时打开;sendlocalpushmsg://push.send.cancel 会清除所有已安排的通知。它能在没有后端的情况下覆盖提醒(“您的课程将在 2 小时后开始”)、连续打卡提醒和购物车放弃提醒。它的局限也很明显:无法从您的服务器发送,没有分群,也没有送达统计。许多应用先用本地推送做提醒,等需要营销活动时再接入服务商。
无论使用哪个服务商,都要控制权限对话框何时出现。在 Config.swift 中把 askforpushpermissionatfirstrun 设为 false,然后在用户注册后或开启通知设置时,从您的 Web 应用触发 registerpush://。在用户感受到价值的时刻请求权限,被允许的概率远高于冷冰冰的首次启动。
四个问题帮您做决定。
本地推送。如果以后需要营销活动,再添加服务商。
FCM。您已经有 Cloud Functions 和 Admin SDK;再加一个配置文件就完成了。只有当非开发人员需要活动控制台时,才需要添加 OneSignal。
OneSignal 或 Pushwoosh。两者都为营销人员提供控制台,而 edge function 可以调用它们的 REST API 发送事务性消息。
Pushwoosh 正是围绕这一点构建的;OneSignal 也能覆盖。请到它们的网站上比较当前方案;价格和限额会有变化。
可以,需要一次商店更新。现有用户打开更新后的应用时,会在新服务商那里完成注册;旧控制台中的分群和历史记录不会转移。
不需要。APNs 密钥是在浏览器中通过 Apple Developer 门户创建的,签名由 Cloud Builder 或 Xcode 处理。OneSignal、Pushwoosh 和 Firebase 都接受 .p8 密钥。
能。测试构建和正式构建一样能收到通知,这正是测试权限请求时机和深度链接的好时候。
可以从 Supabase edge function 或任意服务器发送:使用您为每个用户保存的订阅 ID 调用服务商的 REST API。
不是。iOS 上的 Web 推送只适用于添加到主屏幕的网站,而且有自己的限制。通过 WebViewGold 的原生推送能触达商店应用的每一次安装。
结果相同,只是您需要投入的工作量不同。三种方式都附带审核通过保证和 7×24 小时人工支持。
$109 每个平台,一次性付费
WebViewGold 许可证:一个现成的 Xcode 或 Android Studio 项目。粘贴您的 URL,设置名称和图标,开启所需功能,构建并提交。永久免费更新。
在主页查看方案$349 每个许可证,一次性附加购买
无需 Mac、Xcode 或 Android Studio:在浏览器中完成配置,我们在云端构建两个应用,并将其交付到 App Store Connect 和 Play Console。
Cloud Builder 如何运作 试用免费演示$698 每个平台 $798
把您的 URL 和图标发给我们。我们的团队在 72 小时内完成配置、构建并交付您的应用,白标,附源码项目。两个平台共 $1,158。
Full Service 详情 服务提供方:冬季特惠价格有效期至 2026年12月31日。
App Store & Google Play 审核通过保证 – 否则 14 天内退款
想直接交给我们?Full Service:我们在 72 小时内完成配置、构建并交付,每个平台 $698 起。有疑问?通过 7×24 小时在线聊天联系我们。
退款依据我们 FAQ 中列出的条件:应用因非内容原因被 Apple 和/或 Google 拒审,并在购买后 14 天内提出申请。