You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何实现点击Facebook任意URL打开Android应用(Facebook深度链接)

我当初配置Facebook App Link的时候也卡了好久,给你整理了Android端的完整配置步骤,一步步来应该就能解决:

Android端配置Facebook App Link的实操指南

1. 先搞定Facebook开发者平台的基础配置

  • 首先得在Facebook开发者后台创建对应Android应用,务必填对这三个关键信息:
    • 包名:和你Android项目里的applicationId完全一致
    • 类名:处理App Link跳转的Activity完整路径(比如com.example.app.DeepLinkHandlerActivity
    • 签名哈希值:分别生成调试版和发布版的签名哈希,都要填进去——这一步最容易踩坑,哈希不对直接导致验证失败

2. 在AndroidManifest.xml中配置跳转Activity

找到你用来处理App Link的Activity,添加对应的intent-filter,让系统能识别并跳转过来:

<activity
    android:name=".DeepLinkHandlerActivity"
    android:exported="true">
    <!-- 开启自动验证,避免用户手动选择打开方式 -->
    <intent-filter android:autoVerify="true">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <!-- 替换成你在Facebook后台配置的App Link域名和路径前缀 -->
        <data
            android:scheme="https"
            android:host="your-custom-domain.com"
            android:pathPrefix="/app-link" />
    </intent-filter>
</activity>

3. 配置域名关联验证文件

在你的网站根目录(或者.well-known子目录下)放置assetlinks.json文件,用来证明这个域名属于你的App。文件格式如下:

[
  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "com.your.app.package",
      "sha256_cert_fingerprints": ["你的App签名SHA256指纹"]
    }
  }
]
  • 这个文件必须通过HTTPS可访问,而且指纹、包名要和Facebook后台以及本地配置完全匹配

4. 回到Facebook后台完成App Link绑定

  • 进入应用后台的「App Links」板块,添加你的域名,关联之前配置的Android应用信息
  • 用Facebook提供的测试工具生成测试链接,验证是否能直接跳转到App内

5. 处理App Link的跳转逻辑

在对应的Activity里解析Intent数据,实现页面跳转:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_deep_link_handler);

    Intent incomingIntent = getIntent();
    Uri linkData = incomingIntent.getData();
    if (linkData != null) {
        // 解析链接里的路径和参数,跳转到对应页面
        String targetPath = linkData.getPath();
        String customParam = linkData.getQueryParameter("user_id");
        // 这里写你的页面跳转逻辑,比如根据path跳转到商品页/用户页
    }
}

常见坑点排查

  • 签名哈希搞混:调试版和发布版的签名哈希是不同的,测试时用调试哈希,上线前要换成发布哈希
  • assetlinks.json访问失败:确保文件路径正确、HTTPS可用,没有被服务器拦截
  • Manifest配置错误:检查scheme、host、pathPrefix是否和域名配置完全一致

内容的提问来源于stack exchange,提问作者Saeef Minhaz

火山引擎 最新活动