Browser web push on iOS only works for home-screen web apps and most users never see it. As a native app built with WebViewGold, your Windsurf app gets the real thing: system push notifications on iOS and Android, sent from your backend, from a dashboard, or scheduled by your own JavaScript.
From $109 one-time per platform, or let our team do it all from $698.
Approval guarantee – or money back within 14 days
No coding needed
One-time payment, free updates
24/7 human support
Made in Germany since 2014 · ISO 27001
9:41
WWindsurf
Push notificationsNow live in your pocket
App Store · Google Play Approved
Three ways to notify your users
Remote push (OneSignal, Pushwoosh or Firebase)
Send campaigns from a dashboard or trigger messages from Your own API or serverless functions via their REST API. Segment users, schedule sends, track opens. WebViewGold ships with the integrations; you paste your app IDs into Config.swift and Config.java (or the Cloud Builder).
Local push from JavaScript
Schedule a notification from your Windsurf app with one URL call, for example a reminder in two hours or a cart recovery message. Fires even after the app was closed. Works without any push service.
Permission at the right moment
Trigger the system permission dialog from a link (registerpush://) when the user has a reason to say yes instead of on first launch, and read the permission state with checkNativePushPermissions:// (JavaScript variable nativePushEnabled).
Prompt for Windsurf
Paste this into Windsurf to implement the web-app side. Review the result, publish, then test inside the WebViewGold app.
Prompt for Devin Local
Prompt for Devin Local: Add native push notification support for the WebViewGold app wrapper. Create a Notifications settings page with an Enable notifications button that navigates to registerpush:// only when navigator.userAgent contains my custom WebViewGold token; in other browsers show a short note. After login, read the global onesignalplayerid variable (set window.location.href to getonesignalplayerid:// once if it is undefined) and send it to a register endpoint that stores player_id, user_id and platform in our database. Add a serverless function send-push for our host (Netlify Function, Vercel Function or Cloudflare Pages Function) that calls the OneSignal REST API with ONESIGNAL_REST_API_KEY from the environment. Add a cancel action that navigates to sendlocalpushmsg://push.send.cancel. Then commit and push to the branch our host deploys to production.
With a good optimized version of your web app you can have a stunning mobile app within a couple of minutes. Additionally to that the customer service is very nice and very helpful! I can just recommend WebViewGold :-)
Julian Koch · Co-Founder of DuelDonkey · CodeCanyon
Set up push for a Windsurf app
About 20 minutes for both platforms.
Create a free OneSignal (or Pushwoosh) app
Add an iOS app with your Apple push key (.p8 from the Apple Developer portal) and an Android app with your Firebase Cloud Messaging credentials. Both dashboards walk you through it.
Paste the IDs into WebViewGold
Enable the push option in Config.swift and Config.java (or the Cloud Builder form) and insert your OneSignal App ID. Decide whether to ask for permission at first launch or later via registerpush://.
Identify users from your Windsurf app
WebViewGold exposes the push subscription ID to your web app as a JavaScript variable (onesignalplayerid after calling getonesignalplayerid://) or appends it to your URL as ?onesignal_push_id=…. Store it next to the user in Your own API or serverless functions so your backend can target individual users.
Send from your backend
Call the OneSignal REST API from Your own API or serverless functions whenever something happens: new message, order update, reminder. Or send campaigns manually from the dashboard.
Deep-link the notification
Attach a url field to each push; WebViewGold opens that page inside the app when the user taps the notification.
Local push: the JavaScript call
No push service needed. From your Windsurf app, schedule a notification that fires even after the app is closed:
javascript
var title = "Your session starts soon";
var message = "Tap to open your dashboard.";
var seconds = 7200; // fire in two hours
var url = "https://yourapp.com/dashboard"; // opened when tapped
window.location.href = "sendlocalpushmsg://push.send?s=" + seconds + "=msg!" + message + "&!#" + title + "&!#" + url;
// cancel everything that is scheduled
// window.location.href = "sendlocalpushmsg://push.send.cancel";
What to tell Windsurf
Add a notification settings screen with an "Enable notifications" button that navigates to registerpush:// only inside the app (WebViewGold identifies itself via a custom user agent you define in the config).
Read the push subscription ID that WebViewGold provides and save it on the user profile in Your own API or serverless functions.
Create a backend function that calls the OneSignal REST API with the user's subscription ID when an event happens.
Add a ?utm_source=push parameter to notification URLs so your analytics can attribute opens.
Frequently asked questions
Does web push from Windsurf work inside the app?
Browser web push (service worker based) is not what the stores and users expect from an app. WebViewGold uses native APNs and FCM notifications, which show up in the system notification center, support badges and sounds, and work on every iPhone.
Is OneSignal free?
OneSignal has a free tier that covers most new apps; Pushwoosh offers WebViewGold customers two free months. Local push notifications are free and need no service at all.
Do push notifications help with App Store review?
Yes. Guideline 4.2 asks for functionality beyond a website; native push notifications are a concrete, user-facing native feature.
Can I send a push to one specific user?
Yes. Map the subscription ID WebViewGold exposes to the user record in Your own API or serverless functions and target that ID through the OneSignal API.
Three ways to get your app into the stores
Same result, different amount of work on your side. All three come with the approval guarantee and 24/7 human support.
Do it yourself
$109 per platform, one-time
The WebViewGold license: a finished Xcode or Android Studio project. Paste your URL, set name and icon, switch on features, build and submit. Free updates forever.
No Mac, no Xcode, no Android Studio: configure in the browser, we build both apps in the cloud and hand them to App Store Connect and the Play Console.
Send us your URL and icon. Our team configures, builds and delivers your app within 72 hours, white-label, with source projects. Both platforms for $1,158.