Twitter - Deep Linking for Mobile Developers
The App Card provides the ability for users to download your app (if the user doesn’t already have it installed), or deep-link into your own app (if the app is already installed on the user’s mobile device).
The App Card provides the ability for users to download your app (if the user doesn’t already have it installed), or deep-link into your own app (if the app is already installed on the user’s mobile device).
We can achieve this things with Twitter Card.
https://dev.twitter.com/cards/mobile
https://dev.twitter.com/cards/mobile
We need to make dynamic Web page and host this page
on any server which will be use for Sharing using Twitter from app.
For demonstration purpose, we have implemented the
same functionality in PHP with some hard-coded data but you need to convert in
your back-end technology with dynamic data.
Please find PHP source code which we used for testing purpose.
Web Page Part
Please find PHP source code which we used for testing purpose.
Web Page Part
<html>
<head>
<title>App
Name</title>
<meta name="twitter:card"
content="summary">
<meta name="twitter:site"
content="App Name">
<meta name="twitter:title"
content="App Name">
<meta name="twitter:description"
content="App
Name is a 100% free social sharing app that allows sharing of video, photo,
audio and text all in one network.">
<meta name="twitter:image"
content="http://app_name.vm39.sa92.info/ico.png">
<meta name="twitter:url"
content="http://appname.com/">
<meta name="twitter:app:name:iphone"
content="appname"/>
<meta name="twitter:app:id:iphone"
content="570281083"/>
<meta name="twitter:app:name:googleplay"
content="appname"/>
<meta name="twitter:app:id:googleplay"
content="com.appname"/>
<meta name="twitter:app:url:iphone"
content="appname://show?bid=54e58b4360afd71a53001f5e"
/>
<meta name="twitter:app:url:googleplay"
content="appname://show?bid=54e58b4360afd71a53001f5e"
/>
</head>
<body>
<h1>Have
something interesting here for particular Post, becasue when user click on link
from Twitter it he/she will come to this page.</h1>
</body>
</html>
We have used summary card here.
https://dev.twitter.com/cards/types/summary
https://dev.twitter.com/cards/types/app
After making card, you have to validate your card with below URL.
https://cards-dev.twitter.com/validator
Android Part
At Android side, we need to do below things.
We need to add host and scheme in activity tag of Manifest file based on url defined in twitter app link url above.
Please find below code snippets below for reference.
AndroidManifest.xml
We have used summary card here.
https://dev.twitter.com/cards/types/summary
https://dev.twitter.com/cards/types/app
After making card, you have to validate your card with below URL.
https://cards-dev.twitter.com/validator
Android Part
At Android side, we need to do below things.
We need to add host and scheme in activity tag of Manifest file based on url defined in twitter app link url above.
Please find below code snippets below for reference.
AndroidManifest.xml
<activity
android:name=".ui.activities.SplashActivity"
android:label="@string/app_name"
android:launchMode="singleTop"
android:screenOrientation="sensorPortrait"
android:windowSoftInputMode="adjustResize" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter android:label="@string/app_name" >
<action android:name="android.intent.action.VIEW" >
</action>
<category android:name="android.intent.category.DEFAULT" >
</category>
<category android:name="android.intent.category.BROWSABLE" >
</category>
<!-- Accepts URIs that begin with "example://action" -->
<data
android:host="show"
android:scheme="appname" >
</data>
</intent-filter>
</activity>
In Activity, You can retrieve app link url in oncreate() method.
With url, you can redirect user to our app's screen based on data retrieved from URL.
Please find below code snippets below for reference.
onCreate()
if
(getIntent().getData() != null
&&
getIntent().getData().toString().length() > 0) {
Logs.e(TAG, "Data:" +
getIntent().getData());
if
(getIntent().getData().toString().startsWith("appname")) {
twitterCallbackUrl =
getIntent().getData().toString()
.substring(getIntent().getData().toString().lastIndexOf("?bid=")
+ 5,
getIntent().getData().toString().length());
Logs.e(TAG,
"twitterCallbackUrl:" + twitterCallbackUrl);
}
}
You can get additional information about complete
implementation at
https://dev.twitter.com/cards/getting-started
https://dev.twitter.com/cards/mobile
https://dev.twitter.com/cards/mobile/url-schemes
https://dev.twitter.com/cards/getting-started
https://dev.twitter.com/cards/mobile
https://dev.twitter.com/cards/mobile/url-schemes
No comments:
Post a Comment