我正在尝试从Chrome打开我的应用,但它对我不起作用..
这是官方(非常有限)的文件: Android Intents with Chrome
我发现了一堆类似的问题,但没有一个解决方案似乎对我有用 - 而且,答案有点零散,所以我正在寻找完整的答案。我们很高兴在我们找到它后立即发布我的完整解决方案:)
这是我现在得到的:
的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(它在用户点击元素时构建意图链接):
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)); }
我从这个函数得到以下'链接':
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
人类可读:
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
这样就可以了:它打开Play商店并显示“找不到项目”和“刷新”按钮。所以它打开了一个活动但不是正确的活动..
我试图解决此问题的网站是http://pocketr.rejh.nl
帮助?
完整答案
正如马蒂亚在下面所指出的那样(我只是自己想出来,但找到答案等着我......:P)
首先:我忘了在我的意图链接中包含'scheme = sharedr':
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
应该(注意第二行):
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
然后,在android清单中:
<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>
其中'android:scheme =“sharedr”'是'scheme = sharedr'部分,'android:host =“sharedr”'对应'intent:// sharedr /'
谢谢!
答案 0 :(得分:3)
您将sharedr
指定为host
,但host
中配置的AndroidManifest.xml
为pocketr.rejh.nl
。您也没有指定scheme
。
修复的网址是:
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
人类可读:
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