【发布时间】:2019-09-16 11:59:12
【问题描述】:
我想将我的 Flutter 应用中的帖子分享到 LinkedIn 和 Facebook 等社交媒体平台。我该怎么做。
【问题讨论】:
我想将我的 Flutter 应用中的帖子分享到 LinkedIn 和 Facebook 等社交媒体平台。我该怎么做。
【问题讨论】:
你可以使用 Flutter Share Plugin。
Share.share('Your content here.');
【讨论】:
您还可以使用Firebase Dynamic Links 将用户重定向到您的应用。
【讨论】:
我不知道linkedin,但对于facebook,你可以使用social_share_plugin。除了自述文件中的说明,我还按照示例在 android/app/src/main/res/xml 中添加了 provider_paths.xml。您需要确保您使用的是最新的 facebook SDK 实现,因此在 android/app/build.gradle 中,将以下代码添加到依赖项:
implementation 'com.facebook.android:facebook-android-sdk:[5,6)'
【讨论】:
您也可以使用flutter_share_me 包。
String response;
String url = 'https://cardaji.com';
String msg = "Look my great score on cardaji";
String strSeparator=" \n";
final FlutterShareMe flutterShareMe = FlutterShareMe();
// facebook post
response = await flutterShareMe.shareToFacebook(url: url, msg: msg);
// twitter post
response = await flutterShareMe.shareToTwitter(url: url, msg: msg);
// whatsapp post
response = await flutterShareMe.shareToTelegram(msg: msg+ strSeparator+ url);
// telegram post
response = await flutterShareMe.shareToWhatsApp(msg: msg+strSeparator+url);
非常重要
当你构建你的iOS项目时,你会在SwiftFlutterShareMePlugin.swift文件的sharefacebook函数中发现如下错误。
'init()' 已在此处明确标记为不可用 (FBSDKShareKit.ShareDialog)
func sharefacebook(message:Dictionary<String,Any>, result: @escaping FlutterResult) {
let viewController = UIApplication.shared.delegate?.window??.rootViewController
let shareDialog=ShareDialog() // **this line make the error**
let shareContent = ShareLinkContent()
shareContent.contentURL = URL.init(string: message["url"] as! String)!
shareContent.quote = message["msg"] as? String
shareDialog.mode = .automatic
ShareDialog(fromViewController: viewController, content: shareContent, delegate: self).show()
result("Sucess")
}
因为facebook sdk升级了,所以你可以更新flutter_share_me package(version 1.2.0)文件的SwiftFlutterShareMePlugin.swift如下。
func sharefacebook(message:Dictionary<String,Any>, result: @escaping FlutterResult) {
let viewController = UIApplication.shared.delegate?.window??.rootViewController
let shareContent = ShareLinkContent()
shareContent.contentURL = URL.init(string: message["url"] as! String)!
shareContent.quote = message["msg"] as? String
ShareDialog(viewController: viewController, content: shareContent, delegate: self).show()
result("Sucess")
}
【讨论】: