4

我有一个名为 Jamama 的 android 应用程序。它播放来自我的云的声音。它的意图过滤器处理所有以http://jamama.com开头的 URL 。当我在 Facebook 上发布 Jamama URL 时,当从 Android 设备上的 FB 应用程序单击链接时,我希望它打开应用程序或跳转到 Google Play 应用程序进行下载。我已经看到它与许多应用程序(Soundcloud、CandyCrush 等)一起使用。困难在于 FB 将我的 URL 包装为 FB url 的参数。

现在,我一直在网上调查这个问题。我在 StackOverflow 中看到过类似的问题,但从来没有像我的意思那样真正制定过,也从来没有有用的答案。所以我在这里再次抓住机会。

我确实创建了一个 FB 应用程序,为此我定义了以下内容:

  • 基本信息(没有命名空间),
  • Facebook 上的应用,以 http[s]://jamama.com/ 作为 URL 原生 Android 应用,具有正确的包、活动和密钥哈希(调试和发布),并启用了 Facebook 登录和深度链接。

尽管如此,点击我在我的 FB 帖子中发送的链接仍然会导致在浏览器中打开一个页面,而不是打开我的应用程序。

我还听说了 Facebook SDK for android 中有一个 API 可以打开一个专门的对话框来发布故事。这可能很好,但我真的需要它来处理简单的文本。现在我分享一个文本,Android 会打开正确的 Intent 选择器,让我可以选择通过 Facebook、Google、邮件等方式分享它。这就是我想要的。我不想对每个分享应用做特殊处理。

我看到它可以与许多网站一起使用,例如 YouTube、SoundCloud、MuseScore 等我缺少什么所以它也对我有用?

谢谢

迈克尔

4

2 回答 2

0

我有一个 facebook 应用程序和 android 应用程序几乎做同样的事情,听起来你想从 facebook 回调端生成的点击中截取浏览器中的链接/字符串(因为这是首先出现的,使用基本操作顺序)。

更明确地说,用户在 facebook 上(使用标准的 facebook 应用程序)点击您的 facebook 应用程序(可能是一个标有“免费注册”的横幅),来自您的 facebook 应用程序的回调 url(在本例中为“免费注册” "banner) 需要提醒 android 通过它的 url/string 抛出浏览器来打开你的 Android 应用程序。

如果以上内容正确,我使用了 javaScript,我的 facebook 应用程序回调 url 转到自定义 html 页面(在计时器上使用 JavaScript),然后向 Android 发送广播并启动我的应用程序。可能还有很多其他方法可以做到这一点,但我就是这样做的,为了遵循我的道路,你必须从这里开始。步骤如下

1:Facebook Mobile 2:CLICK 导致的 Facebook 应用程序 3:使用此处定义的 Android webkit 的 Html/javaScript (交互/CLICK) 4:通过 Intent 启动您的 Android 应用程序(就像单击菜单中的图标一样)

再说一次,我不是很多方法的管理机构。希望能在一定程度上帮助你。如果它喜欢我的回答。

于 2013-10-18T06:46:10.553 回答
0

更新和正确的方法是通过称为 AppLinks 的方法。AppLinks 是由 Facebook 开发的,目的是完全按照您的描述进行操作

  1. Facebook 文档页面:https ://developers.facebook.com/docs/applinks/overview

  2. 官方网站:http ://applinks.org

那么,您如何使用它(我正在描述,因为这个问题在其中,但在 iOS 中是可能的)

因此,在您的 HTML 页面中,您必须添加以下内容

<head>
...
<meta property="al:android:url" content="sample://yourapp/deep_linking_uri">
<meta property="al:android:package" content="com.yourapp.package">
<meta property="al:android:app_name" content="NameOnTheStore">
...
</head>

在您的 android 应用程序中,您需要将刚刚发送的 URI 绑定到 Activity

<activity android:name=".MainActivity" android:label="@string/app_name" >
   ...
    <intent-filter>
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT" />
      <data android:scheme="sample" />
   </intent-filter>
</activity>
于 2014-12-17T15:23:29.287 回答