我已经看到很多关于这个问题的问题,但总是针对特定的平台或用例。我想知道如何创建一个链接,例如Facebook页面,以便它可以在iOS和Android(以及Windows手机,黑莓手机等)上的应用程序(facebook,linkedin等)中打开,但如果没有可用的应用程序,将在浏览器中打开?
答案 0 :(得分:0)
我们目前使用的是一项活动:
<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="@string/deeplink.scheme"
android:host="@string/deeplink.host"
/>
</intent-filter>
带
<string name="deeplink.scheme" translatable="false">http</string>
<string name="deeplink.host" translatable="false">something.com</string>
然后在活动中我们检查活动是否是从网址开始的:
protected boolean startedExternally() {
return
(getIntent() != null) &&
(Intent.ACTION_VIEW.equals(getIntent().getAction()) &&
(getIntent().getData() != null));
}
然后如果返回true:
String route = getIntent().getData().getPath();
然后我们做了一些魔术来分析路线,所以应用程序知道如何处理它。
顶部的intent-filter确定我们是否希望应用拦截网址,或让Android执行此操作(这可能意味着启动浏览器)。
答案 1 :(得分:0)
您可以查看amqp_queue.c:963。
它实现了Bolts Framework。
Facebook和FacebookSDK推荐的螺栓基于它。
请检查以下示例:
AppLinks protocol https://developers.facebook.com/docs/applinks/ios