I'm trying to open my app from Chrome but it doesn't work for me..
Here's the official (very limited) documentation: Android Intents with Chrome
I've found a bunch of similar questions but none of the solutions seem to work for me - also, the answers are a bit fragmented so I'm looking for the complete answer with example. I'd be happy to post my full solution as soon as we found it :)
- Launching an Android Application from the Browser
- Open Android app from URL using intent-filter not working
Here's what I got now:
AndroidManifest.xml:
<activity android:name=".ActMain" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" />
<data android:scheme="https" />
<data android:scheme="sharedr" />
<data android:host="pocketr.rejh.nl" />
<data android:pathPattern="/.*" />
</intent-filter>
</activity>
Javascript (it builds the intent link when user clicks on an element):
var url = "http://icerrr.rejh.nl/"
var title = "Example"
var intenturl = "intent://sharedr/#Intent;"
+ "package=com.rejh.sharedr;"
+ "S.action=share;"
+ "S.type=url;"
+ "S.title="+ app.helpers.encodeURIComponent(title) +";"
+ "S.url="+ app.helpers.encodeURIComponent(url) +";"
+ "end";
alert(intenturl); // for debugging
try {
window.location.href=intenturl;
} catch(e) { alert(JSON.stringify(e)); }
I get the following 'link' from this function:
intent://sharedr/#Intent;package=com.rejh.sharedr;S.action=share;S.type=url;S.title=Example;S.url=http%3A%2F%2Ficerrr.rejh.nl%2F;end
Human-readable:
intent://sharedr/#Intent;
package=com.rejh.sharedr;
S.action=share;
S.type=url;
S.title=Example;
S.url=http%3A%2F%2Ficerrr.rejh.nl%2F;
end
So this works as in: it opens the Play Store and shows "Item not found" and a Refresh button. So it opens an activity but not the right one..
The website I'm trying to fire this from is http://pocketr.rejh.nl
Help?
The full answer
As pointed out by Mattia below (and I just figured this out myself but found the answer waiting for me... :P)
First of all: I forgot to include the 'scheme=sharedr' in my intent link:
intent://sharedr/#Intent;
package=com.rejh.sharedr;
S.action=share;
S.type=url;
S.title=Example;
S.url=http%3A%2F%2Ficerrr.rejh.nl%2F;
end
Should be (notice the 2nd line):
intent://sharedr/#Intent;
scheme=sharedr;
package=com.rejh.sharedr;
S.action=share;
S.type=url;
S.title=Example;
S.url=http%3A%2F%2Ficerrr.rejh.nl%2F;
end
Then, in the android manifest:
<activity android:name=".ActMain" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="sharedr" android:host="sharedr" android:path="/"/>
</intent-filter>
</activity>
Where 'android:scheme="sharedr"' is the 'scheme=sharedr' part and 'android:host="sharedr"' corresponds to 'intent://sharedr/'
Thanks!