1

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 :)

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!

Community
  • 1
  • 1
REJH
  • 3,273
  • 5
  • 31
  • 56

1 Answers1

3

You specify sharedr as host but the host configured in your AndroidManifest.xml is pocketr.rejh.nl. Also you didn't specify the scheme.

The URL fixed is this:

intent://pocketr.rejh.nl/#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

Human-readable:

intent://pocketr.rejh.nl/#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
Mattia Maestrini
  • 32,270
  • 15
  • 87
  • 94
  • Oh my god I just figured this out myself :P Why-o-why doesn't the doc have an example of both the 'link' and the corresponding androidmanifest :P I'll update my question in a sec with the full solution. Thanks! – REJH Nov 14 '15 at 11:53