Thursday, April 9, 2015




j1
 With BlackBerry 10.3.1, BlackBerry 10 users will now be able to enjoy a new UI model, the BlackBerry Assistant app and BlackBerry Blend in addition to other features called out in detail by Matt Young over at our Inside BlackBerry blog.
With that being said, hands down, my favorite feature of the BlackBerry 10.3.1 release is the introduction of the Amazon Appstore being preloaded on all BlackBerry 10 smartphones. While users of the BlackBerry Passport and BlackBerry Classic have had access to the Amazon Appstore as a part of the initial BlackBerry 10.3.0 launch, the recent 10.3.1 OS update will allow the rest of the BlackBerry 10 install base to access over 240,000 of the top Android apps including Candy Crush Saga, Minecraft and Pinterest.
j2
Amazon Appstore home screen as shown on a BlackBerry Passport
Combining that with our beefed-up BlackBerry Runtime for Android apps, Android developers have a great opportunity to not only reach the core BlackBerry 10 user base through the BlackBerry World app storefront, but also the Amazon Appstore which is now supported on BlackBerry 10, Amazon FireOS (Kindle, Fire Phone), and a plethora of Android devices.
As an Android developer myself, I was wondering how I could leverage these two distinct distribution methods within my own apps. For example, how could I raise awareness of my consumer apps on the Amazon Appstore to users of my enterprise apps on BlackBerry World, and vice versa?
Fortunately, both BlackBerry World and Amazon Appstore each have a URI (Universal Resource Identifier) associated with their client apps, which are registered at the OS level. A URI is essentially a hot link with a unique schema, which is used to invoke a specific (type of) app. The most recognized example of a URI would have to be the http:// URL (Universal Resource Locator) schema associated with a browser to pull up a webpage.
Just as we can invoke our browser to open the homepage of a domain of interest, or a particular child-page within the same domain, we can invoke BlackBerry World/Amazon Appstore to be brought up in the foreground to either their respective homepage or a specific page deeper within our appstore of choice.
To invoke BlackBerry World or Amazon Appstore to their homepages, the following URIs are supported.
appworld:// //open BlackBerry World app in the foreground
amzn://apps/android? //open Amazon Appstore app in the foreground
To invoke BlackBerry World or Amazon Appstore to a specific details page for a particular app, you can append the unique contentID or ASIN value, respectively. Do not include the angle brackets.
appworld://content/<contentID>  //ex. 22531423 for BBM
amzn://apps/android?asin=<asinValue>  //ex. B00O5DYW7A for BBM
You can also provide a URL-encoded string to search for a particular offering in either store.
appworld://search/<searchterm> //ex. blackberry%20messenger for BBM
amzn://apps/android?s=<searchterm> //ex. blackberry%20messenger for BBM
There are other parameters which would also be supported within your Android app on BlackBerry 10. For further info, feel free to reference the official developer documentation for invoking each app store below.
 BlackBerry World – Opening a specific page in BlackBerry World
https://developer.blackberry.com/native/documentation/cascades/device_platform/invocation/blackberry_world.html
Linking to Amazon from within Your App
https://developer.amazon.com/public/apis/earn/in-app-purchasing/docs-v2/deep-linking-to-the-amazon-client
Depending on some corner cases, you may want to be careful as to which apps are being invoked based on their availability on each platform. You can handle these cases elegantly by querying the manufacturer name of the device your Android app is running on.