Firebase dynamic links in UWP - firebase

So Firebase has these Dynamic links, which if you click in your Android / iPhone you get redirected to your app instead of the website. So when you want to invite your friends to join you in the app (game, group chat or whatever) you just share this link with them.
I was wondering if this was achievable with UWP. I watched a video about project Rome where they talk about AppUriHandlers which seem to do the job. HOWEVER they require you to have a json file at your web server root which would identify your app, saying "yea, this app is allowed and me are associated, open this app when someone launches this link".
The problem with that is that the Firebase dynamic link points to a google endpoint, e.g. https://aaxy2.app.goo.gl/?link=redirect_here and naturely there is going to be no json file just sitting there.
Is there some other way how to have users redirected to my app just via a link (it needs to be an http link because that's what the Android and iOS versions of the app will be using).

It's not going to be possible; for this exact reason. To ensure that web links aren't hijacked by third parties (for potentially malicious reasons), only the owner of a domain (or more accurately: the person/people with access to the storage where the domains points) can "approve" an app.
Update:
After actually doing my job and properly reading your question, I can give you a correct answer; sorry :/
Linking to UWP apps will work similarly to how it's described for iOS apps in the first section here:
You can do the iOS 8 way and support a uri scheme as described in the Windows docs here.
With the Anniversary Update you can also support AppUriHandlers by directing your users to a web link that will launch your app instead (as described in the Dynamic Links docs for iOS 9).
It looks like, however, that you need to register an iOS or Android app to get going, so that might give you some trouble.

Related

Xamarin forms Maps from intent

How to receive Location from native Maps app into my Xamarin forms application. and when my application is opened it should open Xamarin.Forms.Maps on the specific location.
Suppose the user of my app received the location from client on whats app. He/She will open the location in Native app and from there when he chooses share, my app should appear in the list. When he/She chooses my app the the map should open and add a pin on that specific location.
If you mean receiving data from other apps to your app, you can use Share Extension to achieve that.
iOS: Understand Share Extensions
Android: Receiving simple data from other apps
Generally, when sharing data between map apps, we will open a map app manually.
According to the current technical solution, there are two main ways to open another application.
One is to integrate the SDK that needs to open the application.
Another is using the URL Scheme.
Both of them can not be detected automatically and then open the another appilcation. Every third party Map apps all expose their url scheme or SDK to developers. It seems like our app can detect the other map apps automaticall. Actually the developers has defined the supported other map apps. However, we can detect the defined map apps whether installed in device. If installed, the shared menu will show it, else not.
About URL Scheme, iOS and Android has their ways to achieve that.More info can refer to each of their official document.
iOS: Defining a Custom URL Scheme for Your App
Android: Interacting with Other Apps

Possible to have two apps respond to the the same base URL using Firebase

I currently have a scenario where I have app A and a sister app called app B. I would like to have app A and app B respond to a Firebase dynamic link and be able to either app A or app B opened depending on which app the user has on their phone.
Is it possible to achieve this in Firebase. So if I have www.mydomain.com/data/myData. If person A has app A on their phone, the when person A presses www.mydomain.com/data/myData, the app A opens. But if person B who has app B installed on their phone press www.mydomain.com/data/myData then app B opens. Is this possible at all on FireBase?
Ultimately what I'm trying to do is have two apps be able to acquire information from say a URL like, www.mydomain.com/data/myData and use myData as needed in each separate app.
Think of it as two apps "sharing" data between each other.
From an iOS perspective, based on this tutorial and this response from branch on SO, clearly this is possible but does Firebase cater for an app being able to respond to two custom URLs.
Disclaimer: I haven't actually tested this all the way through.
This should be possible with Dynamic Links. When you visit the Overview section of the Firebase console, you have the option to add multiple apps to a Firebase single project. Both apps are correctly inserted into the apple-app-site-association file, which means every Dynamic Link in that Firebase project will be a Universal Link that should correctly triggers either app.
There are a couple caveats to be aware of:
Behavior if both apps are installed on a device is undefined.
For obvious reasons, you have to pick just one of the App Store pages as the app-not-installed fallback location. A workaround for this could be sending the user to a non-store page.

How is Branch app indexing different from Firebase app indexing?

I wanted to know which one is easier to implement. In the branch app indexing method is it required to implement app content sitemaps?
Full disclosure: I'm the Branch.io team
The way Firebase and Branch implement app indexing is fairly similar. In fact, Branch uses exactly the same methods for indexing as Firebase does, and adds some additional functionality on top. Branch acts as a wrapper for your own website, or as your full hosted website from the perspective of Firebase. So, when it comes to indexing with Google, you index a Branch link whereas Firebase requires you to submit your own site.
From the perspective of a developer, assuming the only thing you're trying to do is app indexing, Branch is slightly simpler to use and gives you rich analytics about the traffic from this channel but neither one is a lot of work. However, both platforms also provide other features that may sway your decision. If you're doing any sort of content sharing (i.e., your users create links to post on social media), Branch gives you app indexing basically 'for free' in the same library, whereas Firebase would require you to implement both features separately.
Both tools are free to use.
Firebase
Offers a lot of features (of which app indexing is just one), all implemented to a 'fairly good' level. This makes the Firebase platform an attractive choice for a small, new app that needs a lot of basic infrastructure and doesn't necessarily plan to require advanced functionality later on.
On Firebase, App Indexing for Android apps is implemented via integrating the Firebase App Indexing SDK and making a verified link between your website and your app (usually via Digital Asset Links or the Google Search Console). The 'Firebase App Indexing' SDK is actually just Google's old App Indexing SDK that's been rebranded and repackaged in a peculiar way.
You then register content items inside your app using the SDK and cross your fingers in hopes that Google will index them — there's no feedback on the process. App Indexing for iOS apps is based on crawling URLs that have been enabled for Apple's Universal Links. There is a Firebase App Indexing SDK for iOS, but to be honest I have no idea what it does. We've never seen any benefit or change to indexing behavior on iOS when it's integrated. On both platforms, you need to already have a live website, because every piece of content inside your app must also correspond to a specific URL on your site.
Branch
A best-in-class, enterprise-grade tool for growth attribution and content sharing, used by many of top apps like Pinterest, Airbnb, Jet.com, etc.
Branch is based around the concept of a single link that works everywhere, on all platforms, and intelligently redirects to the appropriate destination. Every time your users share content or view a piece of content in your app, that action generates a link. Since Google's search index is really just a huge collection of links, this is a perfect match.
On both Android and iOS, Branch de-dupes your app's links for any that point to the same content, packages up the result into an 'app content sitemap' (you don't have to do this yourself if you're using Branch links — it's automatic as soon as you enable the feature) and ships that sitemap file over to Google. In addition, since your links are hosted by Branch, there is no need for you to have an existing website, and you also get access to things like iOS Spotlight Indexing. Branch is compatible with iOS Universal Links by default, and we take care of verifying the connection between your web content and your app. We also monitor the links so we can give you feedback on if/when Google decides to index your content, and so that you can pull out reports on traffic that comes in through app indexed links.
On Android, in addition to the approach above, the Branch SDK helps you to identify pieces of content inside your app and submit them to Google for indexing. This is exactly the same approach as Firebase uses, except since the traffic still goes through a Branch link, you get additional data for attribution and analytics.
Feel free to read the full Branch Google App Indexing integration guide for more details!
Of course, implied in all of this is the assumption Google actually cares about your content enough to display it in search results. They seem to be getting better about this, but at the moment it's still very much a black box without much feedback to you as the developer. At Branch, we're trying to provide as much insight into the process as we can, so at least if your content isn't being indexed by Google you'll know that instead of being left wondering.

Is it Possible to create a PhoneGap app from a Wordpress blog?

Is it possible to make a PhoneGap native app from a Wordpress mobile blog?
I understand that PhoneGap allows you to develop HTML5 apps and turn them into native mobile applications.
I'm looking to create a content distribution app somewhat like the ones so many local news services use (WGAL, Channel 69 News), but to be able to list it in the Android Market Place and the AppStore, as well as be able to access it online all with the same content.
Also are there any alternative methods to accomplish this? Are News apps like that available in some sort of a "canned form"
One way is to essentially you make PhoneGap a web browser without an adress bar. I have an iPhone example here. All I did was make javascript redirect upon loading the application, whitelisted my IP (in the case of the example it's local host) and modified the Appdeligate.m with this piece of code from:
- (BOOL) webView:(UIWebView*)theWebView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
return [self.viewController webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType];
}
to
- (BOOL)webView:(UIWebView *)theWebView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
NSURL *url = [request URL];
if ([[url scheme] isEqualToString:#"http"] || [[url scheme]isEqualToString:#"https"]) {
return YES;
}
else {
return [ super webView:theWebView shouldStartLoadWithRequest:requestnavigationType:navigationType ];
}
}
and voila, a "native" app, with access to all local resources (storage, camera, etc) built on web frameworks! Weather or not Apple or the others will let something like this in their app store I still have yet to investigate but it sure works well for demonstration purposes or personal apps.
We have just created a similar concept using PhoneGap and Application Craft, but Apple rejected the application, this is the message we received:
We found that the experience your app provides is not sufficiently different from a web browsing experience, as it would be by incorporating native iOS functionality to provide a more robust user experience.
While your app content may differ from your web site or other existing sites, the experience it provides does not differ significantly from the general experience of using Safari, as required by the App Store Review Guidelines.
You may wish to provide convenient access to a web property for a select or niche group of users - and may have enhanced that experience with features such as Push Notifications, Core Location, and/or sharing features. However, these features do not provide a robust enough user experience to be appropriate for the App Store.
If you wish to provide quick access to a web property, you may wish instead to provide instructions to your users on how to create a Safari web clip to add to their iOS device Home Screen. Or, if you would like to share the app with a select group of users, we recommend the Ad Hoc distribution method. See the iOS Provisioning Portal for details on Ad Hoc Distribution.
We encourage you to review your app concept and evaluate whether you can incorporate additional features to enhance the user experience.
If you cannot - or choose not to - revise your app to be in compliance with the App Store Review Guidelines, you may wish to build an HTML5 web app instead. You can distribute web apps directly on your web site; the App Store does not accept or distribute web apps.
HTML5 is the major new version of HTML and enables audio and video to play natively in the browser without requiring proprietary plug-ins. Using HTML5, web apps can look and behave like native iPhone and iPad apps, and using HTML5's Offline Application Cache, a web app can work even when the device is offline. With web apps, you have flexibility to deliver as much or as little functionality as you desire.
To get started with iPhone or iPad web apps, please review Getting Started with iPhone Web Apps.
For a description of the HTML elements and attributes you can use in Safari on iPhone, check out Safari HTML Reference: Introduction.
Unfortunately I can not link this as it was a reply to our application submission and not on one of the help platforms. We have not tried Google Play Store yet but from what I understand they will most likely accept the app, will update when we have tried.

iPhone Phonegap based app load External website made of componentone

My Client wants a native iPhone App that displays their mobile site optimized for iPhone developed using asp.net and ComponentOnes Studio for iPhone. i was planning to use a PhoneGap app which calls an external URL using JavaScript and do it after showing the splash screen. but according to phoneGap FAQ its most likely to apple to reject an app that loads external URL ? just need somebody to clear me on the whole process. isnt it possible to create an app like that ? i've seen various iPhone apps that do this (eg: cydia).
else what care should i take if i'm to develop such an application.
I think you have answered your own question, while it is completly possible to create such an app with Phonegap, Apple isn't going to approve an app that doesn't have functionality when running unconnected (though how much functionality with Apple is never clear). In fact, there have been at least one report on the Phonegap google groups list of app's being rejected because it was just a "web clip", meaning that the app could have just been done as a website, apparently you have to add some functionality, my guess being services exposed by Phonegap, that you wouldn't be able to do on just a website..
And it is more to the point that the app that you chose to use as an example of a "web app", is only available on jailbroken phones.

Resources