Plateform to manage push notifications with PhoneGap - ios

I used Cordova PushNotification Plugin to add push notifications to my PhoneGap app (this plugin). It worked when I used a simple php script with a particular device token to push a notification (with this script).
I did this for one device, but I know it's a little bit different when it comes to multiple devices. So, is there any plateform that allows a user to manage push notifications (like https://parse.com/products/push) ?
Thanks for your answer :)

Yes, there's a platform that's perfect for what you want: pushwoosh. You can easily add it to Phonegap.
**EDIT for more information for iOS you can search here:
iphone configuration guide
SDK integration
These are the steps you must do:
First you must register in Google APIs site, select Services: https://code.google.com/apis/console/
Turn the Google Cloud Messaging toggle to ON
In the Terms of Service page, accept the terms.Now you need to create the Server Key
Press “API Access” button
Press “Create new Server key”. Either a server key or a browser key should work. The advantage to using a server key is that it allows you to whitelist IP addresses.
Press “Create”.
You can find your GOOGLE_PROJECT_ID from the URL in your Google API console. Usually it looks like this: https://code.google.com/apis/console/#project:12345678912:access In this example, it would be: 12345678912
Enter in Pushwoosh copanel: https://cp.pushwoosh.com/
Create or enter in My Apps menu
When you enter into an app you'll see the Application code in that page or in the navigator's url and this will be your PUSHWOOSH_APP_ID
Download de SDK and insert it in your project.
Change the pushnofitication.js to point to your project ID and Pushwoosh app.

Related

Does a Notification Service Extension need any capabilities?

I’m creating an App ID for a Notification Service Extension
Do I need to add any capabilities to it?
Its only purpose is to download the image for the notification. I don’t think I need to.
Currently I'm able to build into my device without enabling any capabilities in Xcode. Although when I look into the provisioning profile that Xcode built itself, I see Keychain Sharing enabled.
I also saw this tutorial and the tutorial goes with enabling 'App Groups'.
While this other tutorial goes with enabling App Groups along with Push notification. I don't think I need App groups because I don't need to pass any values, just updating the notification is all I need.
I didn't find anything in the docs that mentions what's the correct approach. A friend told me he got his to to work without enabling anything, so I'm very confused.
Basically, you don't need any capability for notification service extension.
Several of my applications work without any capability.
One of them use app group. I need to enable it to share the log files of main application, then load it from notification service and push it to server side when receive a silent push.
Few of them need keychain sharing, so that I can get the key to secure communicate with server side from notification service.

Google Home application support

I have a device which I want to control with Google Home.
Device also can be controlled via mobile app.
It will be a commercial device so many users have different devices and, of course, I can recognise them in my mobile app.
I read documentation about Action and Home Graph, but it is still not clear how I can integrate my device/app with google home in the same way as, for example, Hue is integrated.
I could not find where I can "register" my device/app with google so it will be shown in supported devices.
What I want to achieve is the following:
User gets device, installs the app, connects it device to the app. <- this already works.
Then user goes to google home integrations, selects my platform and he is ready to go.
Maybe someone can push me to the right direction where to start?
The smart home documentation provides the content to help you get started, along with several codelabs to learn about the webhook fomat.
When you are developing your action, through the Actions Console, you will be able to see your service in the full service list as "[test] Your project name". Once your integration is ready, you submit it to be published in the full list of services.

How does iphone Notifications on Websites works? Is need to install Application?

I have problem with understand how "Push Notifications on Websites" works on Iphone, Ipad, etc.
Default Browser Notifications don't work on mobile, but this: https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/NotificationProgrammingGuideForWebsites/Introduction/Introduction.html
should be work fine!
There is good documentation how to install it, but how it works on user?
As i see, it`s 2 variants:
1) Modal Window to allow using notifications in browser like it`s working with default JS Notifications.
or:
2) Link to install application in AppStore. So, user install to device application.
So, if user download application, does this application add to desktop on device as other applications? What happing when user click on icon? Does click on application on desktop activate safari and open web-site? Or is it hidden application without icons on desktop?
I try to find some sites to check examples how it will work with my iphone, but i didnt find any sites. All popular sites say: "download application and active notifications THERE and use application for website".
So, i don't need special application for my site, adaptive design is awesome for me, but i want to use notifications on iphone!
Please, help me :) Thank you!
As you noticed the document states that this feature is available on OSX not on iPad, iPhone.
We see this notifications when we open a website on Safari. For instance,
As soon as we click the allow button, our Macbook communicates with Apple Push Notification Service to establish a persistent IP connection (along with a token exchange). When the website servers send notifications to the Apple Push Notification Service it forwards that notification to our Macbook/iMac.

How to shorten a Firebase Dynamic Link using my own domain name

I'm trying to implement Firebase Dynamic Links in an iOS app. The goal is to have a clean URL for marketing purposes so folks can share links on social media. The idea is folks will share the clean URL that starts with my domain name.
When the app is installed following a click on that link, we want to be able to track who referred the app install by looking at the payload delivered by Firebase. I think this goal is similar to Firebase's use case to convert web users to mobile app users.
An example link I would like to provide for sharing on social media is: http://example.com/my-payload-here
I've tried several cases but I'm not able to get the behavior I'm looking for in any case. Has anyone implemented this successfully before?
Here is my test procedure:
Uninstall the app
Send the link to be tested in an iMessage to myself
Tap the link on my iOS device (not using a simulator)
Install the app from the App Store
Launch the app after download completes by tapping "Open" button in the App Store
Below are my findings:
Short link generated from the Firebase Console (https://xyz.app.goo.gl/ABCD) - Link opens in App Store. I install the app. When I launch the app after installing, the payload is not delivered. If I quit out of the app, go back to the link in iMessage, and launch a second time, the payload is delivered.
Long link identical to the "Long Dynamic Link" from the Firebase console for the link generated in #1 (https://xyz.app.goo.gl/?link=http://example.com/my-payload-here&isi=12345&ibi=com.example.MyApp) - behavior is identical to #1
Short link using my domain (http://example.com/redirect/my-payload-here, configured to 301 redirect to URL in #2) - Opens in App Store. I install. When I launch the app after installing, the payload is not delivered. If I quit out of the app, go back to the link in iMessage, and launch a second time, the link still goes to the App Store.
Some questions I have:
Why isn't the payload delivered on the first launch for cases 1 and 2?
How can we make this launch the app and deliver the payload instead of going to the App Store?
I've also consulted the Firebase flowchart for the deep link in case 2.
Google Firebase team added support for custom subdomains to Dynamic Links.
You can now specify up to five custom page.link subdomains for your Dynamic Links. Short links using these new custom subdomains look like the following example: https://example.page.link/abcXYZ
Firebase Dynamic Link domains assigned on projects couldn't be deleted at this time.( firebase team is working on it.)
You can now whitelist the URL patterns that can be used as a Dynamic Link's deep link (link) or fallback link (ifl, ipfl, afl, ofl). If you define a whitelist, Dynamic Links won't redirect to URLs that don't match a whitelisted pattern.
You can try both of these features in the Firebase console.
This is not currently possible with Firebase. If you need whitelabeled URLs, you either need to build it yourself or use a more powerful link platform like Branch.io (full disclosure: I'm on the Branch team).
To answer your questions specifically:
I have implemented Firebase Dynamic Links in a testbed app and can confirm that linking through installation the first time does work for both long and short URL variants. There is likely something wrong with your AppDelegate config, so we can take a look at that if you want to share code.
Firebase does not support custom domains at this time. In theory (if you can solve the first issue above) you could get this working for first install by using a redirect like you have tried. However, you'll never be able to get it to launch the app with Firebase link data once the app is installed. This is because Universal Links work based on the domain of the link, and don't even request the web destination. Even if you enable Universal Links manually on your own domain, the app will open immediately without ever calling Firebase and the link data will never be set.

Create equivalent of Androids sync adapter on iOS

I got data on a webserver which I want to download to an iOS contact list. Is it possible to programatically create an account on iOS that works like the android "sync adapter" and is not one of the default account or an LDAP/CardDAV account?
Or can I have my application to periodically chech for updates on my webserver without the user having to manually start it. (i.e. running in the background and starting up automatically when the phone is restarted)
No, to both. The best you can do is create a configuration profile that the user can download to add an LDAP/CardDAV account—but you will need to run an actual LDAP or CardDAV server to have any kind of automatic contact syncing happen without the user opening your app. The Address Book framework on iOS only allows you to add and modify contacts within the existing accounts on the device, and the multitasking rules only allow your app to start in the background if it provides a VoIP service.
Use silverstripe-sync !
Source: SO

Resources