Flutter 分享功能:facebook,whatsapp,twitter和系統分享

__white發表於2021-08-13

這是我參與8月更文挑戰的第13天,活動詳情檢視:8月更文挑戰

之前有有一些需求,需要單獨分享到某些App,於是寫了這個外掛,開始的時候只支援安卓版本,最近新增了ios支援,測試後釋出了最新版本,希望能幫到有需求的人。

flutter_share_me

pub package

Flutter 外掛,用於將內容分享到社交媒體。支援Android & iOS

您可以使用它分享到 Facebook、WhatsApp(WhatsAppBusiness)、Twitter 和系統分享。 支援網址和文字,whatsapp支援圖片

Note: 此外掛仍在開發中,某些 API 可能尚不可用。非常歡迎反饋和拉取請求!

開始

add flutter_share_me as a dependency in your pubspec.yaml file.

請檢查最新版本

dependencies:
  flutter:
    sdk: flutter
  # add flutter_share_me
  flutter_share_me: ^1.0.0
複製程式碼

設定

Android

新增 "facebook app id" to the application tag 到 AndroidManifest.xml

    <application>
       ...
       //add this 
        <meta-data
            android:name="com.facebook.sdk.ApplicationId"
            android:value="@string/facebook_app_id" />
            
        <provider
            android:name="com.facebook.FacebookContentProvider"
            android:authorities="com.facebook.app.FacebookContentProvider[facebook_app_id]"
            android:exported="false" />
    </application>
複製程式碼

string.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Replace "343254889799245" with your Facebook App ID here. -->
    <string name="facebook_app_id">343254889799245</string>
</resources>
複製程式碼

IOS

setup facebook

確保在 plist 檔案中新增以下細節。

<key>FacebookAppID</key>
<string>fbid</string>
<key>CFBundleURLTypes</key>
	<array>
		<dict>
			<key>CFBundleURLSchemes</key>
			<array>
				<string>fb-your-fb-id</string>
			</array>
		</dict>
	</array>

複製程式碼

注意:確保在 CFBundleURLSchemes 中的 fb Id 開頭新增 fb。 在 url 方案中新增以下值。

	<array>
		<string>fbauth2</string>
		<string>fbapi</string>
		<string>fbapi20130214</string>
		<string>fbapi20130410</string>
		<string>fbapi20130702</string>
		<string>fbapi20131010</string>
		<string>fbapi20131219</string>
		<string>fbapi20140410</string>
		<string>fbapi20140116</string>
		<string>fbapi20150313</string>
		<string>fbapi20150629</string>
		<string>fbapi20160328</string>
		<string>fbauth</string>
		<string>fb-messenger-share-api</string>
		<string>fbauth2</string>
		<string>fbshareextension</string>
	</array>
複製程式碼

設定 Whatsapp

Make sure you add whatsapp in plist.

        <array>
            <string>whatsapp</string>
        </array>
複製程式碼

設定 Twiter

        <array>
            <string>twitter</string>
        </array>
複製程式碼

使用

將以下匯入新增到您的 Dart 程式碼中:

import 'package:flutter_share_me/flutter_share_me.dart';
複製程式碼

方法

shareToFacebook({String msg, String url})

shareToTwitter({String msg, String url})

shareToWhatsApp({String msg,String imagePath})

shareToWhatsApp4Biz({String msg,String imagePath})

shareToSystem({String msg}) use system share ui

如果這些方法成功跳轉到相應的應用程式,它們將返回“success”。

ParameterDescription
String msg分享的文字
String url分享的連結
String imagePath圖片的路徑

Example

 Container(
          width: double.infinity,
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.center,
            children: <Widget>[
              SizedBox(height: 30),
              ElevatedButton(
                  onPressed: () => onButtonTap(Share.twitter),
                  child: Text('share to twitter')),
              ElevatedButton(
                onPressed: () => onButtonTap(Share.whatsapp),
                child: Text('share to WhatsApp'),
              ),
              ElevatedButton(
                onPressed: () => onButtonTap(Share.whatsapp_business),
                child: Text('share to WhatsApp  Business'),
              ),
              ElevatedButton(
                onPressed: () => onButtonTap(Share.facebook),
                child: Text('share to  FaceBook'),
              ),
              ElevatedButton(
                onPressed: () => onButtonTap(Share.share_system),
                child: Text('share to System'),
              ),
            ],
          ),
        )
複製程式碼

具體實現請參考

相關文章