随着Facebook的新变化,应用程序的深层链接(通过基本共享共享)不再有效。
所以,我决定实施applinks。但我的移动应用程序没有相应的网站,我想分享给Facebook的内容。所以我选择Facebook的移动主机API用于应用程序链接
https://developers.facebook.com/docs/applinks/hosting-api
我生成了一个应用链接,并在我的ios应用中与其他内容共享,如下所示。
// Create an object
NSDictionary *properties = @{
@"og:type": @"article",
@"og:url": @"https://fb.me/[some id]",
@"og:title": name,
@"og:description": desc,
@"og:image":imageurl
};
FBSDKShareOpenGraphObject *object = [FBSDKShareOpenGraphObject objectWithProperties:properties];
// Create an action
FBSDKShareOpenGraphAction *action = [[FBSDKShareOpenGraphAction alloc] init];
action.actionType = @"news.publishes";
[action setObject:object forKey:@"article"];
// Create the content
FBSDKShareOpenGraphContent *content = [[FBSDKShareOpenGraphContent alloc] init];
content.action = action;
content.previewPropertyName = @"article";
FBSDKShareDialog *shareDialog = [[FBSDKShareDialog alloc] init];
shareDialog.fromViewController = self;
shareDialog.shareContent = content;
[shareDialog show];
通过这样做,我可以在Facebook上分享内容。点按内容后,我的iOS应用即可启动。所以没关系。
但我的问题是,我想分享的内容是动态的。我有两个问题。
我想知道这个要求是通过facebook的移动主机API为应用链接实现的。
答案 0 :(得分:0)
来自Branch的粘土。
这两个问题的答案都是肯定的。问题是Facebook很难处理,他们的链接在很多情况下都会破裂。你可以在这里说服自己。 Deep Linking from Facebook in 2017
完全披露后,我为Branch工作,所以请按照您的意愿行事。我们实际上支持链接托管,因此您应该能够在不托管您自己的Web域的情况下使用我们。我们还在我们自己的链接中支持Facebook链接,只需在我们的链接中使用OpenGraph参数即可。
OpenGraph Parameters in Branch Links
从概念上讲,在内部,分支链接如下所示:
{
tags: [ 'tag1', 'tag2' ],
channel: 'facebook',
feature: 'dashboard',
stage: 'new user',
alias: 'myalias',
data: {
mydata: 'something',
foo: 'bar',
'$desktop_url': 'http://myappwebsite.com',
'$ios_url': 'http://myappwebsite.com/ios',
'$android_url': 'http://myappwebsite.com/android',
'$og_app_id': '12345',
'$og_title': 'My App',
'$og_description': 'My app\'s description.',
'$og_image_url': 'http://myappwebsite.com/image.png'
}
}
通过这种方式,您可以附加您想要的任何元数据,因此可以通过深层链接支持您的动态内容,同时覆盖Facebook链接以及几乎所有其他平台和设备。我们还介绍了Facebook App链接不支持的deferred deep linking。
对于您正在寻找的基本深层链接,该服务是免费的。