如何在iOS中使用带有Facebook分享按钮的应用链接来进行深层链接?

方程

我正在尝试使用fb分享按钮从我的应用程序向Facebook创建帖子。我希望这篇文章使用applinks链接回应用程序。我不明白如何将数据添加到Facebook网址,因此它知道单击链接时将应用程序定向到的位置。

FBSDKShareLinkContent * content = [[FBSDKShareLinkContent alloc] init];
content.contentURL = [NSURL URLWithString:@"https://fb.me/123456789"];
FBSDKShareButton * button = [[FBSDKShareButton alloc] init];
button.shareContent = content;
[self.view addSubview:button];

这可行,但是我尝试添加到fb网址中断的任何查询都不再与应用程序链接。例如:

 content.contentURL = [NSURL URLWithString:@"https://fb.me/123456789?my_view=news"];

这是他的错误方法吗?我也尝试过使用json编码和al_applink_data,但是对原始url的任何更改都会使发布链接指向发送的图像url,而不是应用程序链接。

亚历克斯·鲍尔

您实际上是在通过以下流程使用两种不同的Facebook工具:

  1. 应用程序内部的FBSDK以共享链接(看起来您可能已经从这里获得了代码示例?)
  2. Facebook App Links在链接打开时启动您的应用程序。

Facebook用于App Links的过程实际上要复杂一些...不幸的是,它并不像添加URL参数那样简单。以下是其工作原理的概述():

  1. 您发布了指向您内容的链接(为此您正在使用FBSDK)
  2. 链接指向一个页面,该页面托管一些特殊的“应用程序链接”元标记。其中之一看起来像<meta property="al:ios:url" content="yourapp://path/to/content" />当Facebook爬网链接并看到这些标签时,它将链接标记为对App Links启用。您可以将这些标签添加到自己的网站(如果有一个标签,并且指向该标签的链接),或者如果您没有网站,则Facebook提供Mobile Hosting API(看起来您正在使用)。
  3. 当用户打开此链接时,您的应用程序将启动,并且将为您传递一个类似这样的URL,您的应用程序必须自行处理: yourapp://path/to/content?al_applink_data=JSON_ENCODED_DATA不幸的是,重定向到应用程序中的正确位置并不是一个魔术,并且假定您已将应用程序设置为基于URL方案结构显示内容。Facebook提供了一个演练,但是基本上您需要在AppDelegate.m中添加以下内容:

    - (BOOL)application:(UIApplication *)application
                openURL:(NSURL *)url
      sourceApplication:(NSString *)sourceApplication
             annotation:(id)annotation {
        BFURL *parsedUrl = [BFURL URLWithInboundURL:url sourceApplication:sourceApplication];
        if ([parsedUrl appLinkData]) {
            // this is an applink url, handle it here
            NSURL *targetUrl = [parsedUrl targetURL];
            [[[UIAlertView alloc] initWithTitle:@"Received link:"
                                        message:[targetUrl absoluteString]
                                       delegate:nil
                              cancelButtonTitle:@"OK"
                              otherButtonTitles:nil] show];
        }
        ...
    }
    

但是,这仅涵盖您通过Facebook进行共享,而不会陷入URL方案深层链接或iOS 9中Apple的新通用链接的混乱之中。如果要处理所有这些问题,除了Facebook App Links,您还可以可以考虑使用Branch.io之类的免费服务(完整披露:我与他们合作真是太棒了),可以为您解决所有技术细节。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

没有JavaScript的Facebook分享链接

在发布iOS App到appStore之前,如何使用Facebook延迟深层链接功能进行新安装并进行测试?

Electron JS-深层链接-如何使用深层链接的示例

使用android espresso自动进行深层链接

如何在电子邮件中将iOS应用的深层链接显示为链接

如何在iOS Swift中添加网址深层链接

如何实现Facebook共享,然后使用Android应用程序中的深层链接(打开我的应用程序)发布帖子的深层链接?

如何在Android中使用深层链接打开应用程序并获取参数?

如何找出所有应用程序的深层链接路径?

如何在iOS中测试延迟的深层链接

如何在Alexa中使用带有意图确认的意图链接?

如何在Android的深层链接中恢复应用程序?

如何在angular中使用指令进行外部链接?

如何在TypeScript中使用带有变量的可选链接运算符

iOS-测试让Facebook推迟深层链接

Facebook在Android应用程序参与度活动上进行深层链接

如何在链接按钮中使用<%=%>?

Codeigniter分享与Facebook的链接?

如何使用带有变量的链接创建按钮

使用iOS的Applinks进行Facebook深层链接

Android Facebook分享带有文本作为链接的照片

如何实例化带有tab和nav控制器的视图控制器以进行深层链接?

如何在应用程序中创建深层链接?

iOS和Android移动应用深层链接

facebook 应用程序链接如何在 iOS 上作为延迟链接工作

在 Facebook 墙上分享链接

如果我使用 facebook messenger sdk,我如何通过打开信使应用程序来分享到信使的链接

如何在 PHP 中使用 Noembed 进行链接预览

如何在带有外部工作表链接的公式中使用范围