Flutter社交分享插件sharesdk_plugin的使用
Flutter社交分享插件sharesdk_plugin的使用
简介
这是一个基于ShareSDK功能的扩展的Flutter插件。使用此插件能够帮助您在使用Flutter开发应用时,快速地实现社会化功能,例如第三方授权登录,获取用户信息以及社交平台的分享等功能。
原生SDK支持的最低版本:
- Android - V3.4.0
- iOS - V4.3.2
简介:
ShareSDK 是一个全球最全面的社会化SDK,通过它你可以轻松地与40多个平台进行分享。
插件主页:
https://pub.dartlang.org/packages/sharesdk_plugin
官网文档:
Demo例子:
https://github.com/MobClub/ShareSDK-For-Flutter/sharesdk_plugin
开始集成
参考官方插件集成文档:
iOS
你需要重新编辑 sharesdk.podspec
文件设置 dependency,具体支持的平台可以参阅 pod search mob_sharesdk
或者参考官网文档。
#
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html
#
Pod::Spec.new do |s|
s.name = 'sharesdk'
s.version = '0.0.1'
s.summary = 'flutter plugin for sharesdk.'
s.description = 'ShareSDK is the most comprehensive Social SDK in the world, which share easily with 40+ platforms.'
s.homepage = 'http://www.mob.com'
s.license = { :file => '../LICENSE' }
s.author = { 'Mob' => 'mobproducts@163.com' }
s.source = { :path => '.' }
s.source_files = 'Classes/**/*'
s.public_header_files = 'Classes/**/*.h'
s.dependency 'Flutter'
s.dependency 'mob_sharesdk'
# s.dependency 'mob_sharesdk/ShareSDKUI'
# s.dependency 'mob_sharesdk/ShareSDKPlatforms/QQ'
# s.dependency 'mob_sharesdk/ShareSDKPlatforms/SinaWeibo'
# s.dependency 'mob_sharesdk/ShareSDKPlatforms/WeChat'
# s.dependency 'mob_sharesdk/ShareSDKPlatforms/Facebook'
# s.dependency 'mob_sharesdk/ShareSDKPlatforms/Twitter'
s.ios.deployment_target = '8.0'
end
然后你需要根据官方文档在Xcode工程的info.plist里面配置Appkey 和 AppSecret, 以及各平台的白名单和urlScheme。
Android
你需要重新编辑 build.gradle
, mobsdk.gradle
文件来选择你需要使用的平台,具体支持的平台可以参阅官网技术文档。
build.gradle
buildscript {
repositories {
google()
jcenter()
maven {
url "http://mvn.mob.com/android"
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.2'
classpath 'com.mob.sdk:MobSDK:+'
}
}
mobsdk.gradle
MobSDK {
appKey "moba6b6c6d6"
appSecret "b89d2427a3bc7ad1aea1e1e8c1d36bf3"
ShareSDK {
// platform configuration information
devInfo {
QQ {
id 7
sortId 7
appId "100371282"
appKey "aed9b0303e3ed1e27bae87c33761161d"
shareByAppClient true
bypassApproval false
enable true
}
SinaWeibo {
id 1
sortId 1
appKey "568898243"
appSecret "38a4f8204cc784f81f9f0daaf31e02e3"
callbackUri "http://www.sharesdk.cn"
shareByAppClient true
enable true
}
Wechat {
id 4
sortId 4
appId "wx4868b35061f87885"
appSecret "64020361b8ec4c99936c0e3999a9f249"
userName "gh_afb25ac019c9"
path "pages/index/index.html?id=1"
withShareTicket true
miniprogramType 0
bypassApproval false
enable true
}
Facebook {
id 8
sortId 8
appKey "1412473428822331"
appSecret "a42f4f3f867dc947b9ed6020c2e93558"
callbackUri "https://mob.com"
shareByAppClient true
enable true
}
Twitter {
id 9
sortId 9
appKey "viOnkeLpHBKs6KXV7MPpeGyzE"
appSecret "NJEglQUy2rqZ9Io9FcAU9p17omFqbORknUpRrCDOK46aAbIiey"
callbackUri "http://mob.com"
shareByAppClient true
enable true
}
}
}
}
接口方法说明
接口详情:API接口调用
技术支持
如有问题请联系技术支持:
服务电话: 400-685-2216
QQ: 4006852216
节假日值班电话:
iOS:185-1664-1951
Android: 185-1664-1950
电子邮箱: support@mob.com
市场合作: 021-54623100
示例代码
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:sharesdk_plugin_example/home.dart';
import 'package:flutter/cupertino.dart';
void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
[@override](/user/override)
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
[@override](/user/override)
void initState() {
super.initState();
// 初始化状态
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: HomePage(),
);
}
}
更多关于Flutter社交分享插件sharesdk_plugin的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter社交分享插件sharesdk_plugin的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter项目中使用sharesdk_plugin
进行社交分享的示例代码。请注意,这个示例假定你已经有一个Flutter项目,并且已经正确配置了sharesdk_plugin
依赖。
首先,你需要在pubspec.yaml
文件中添加sharesdk_plugin
依赖:
dependencies:
flutter:
sdk: flutter
sharesdk_plugin: ^最新版本号 # 请替换为实际的最新版本号
然后运行flutter pub get
来安装依赖。
接下来,你需要在你的Flutter项目中配置sharesdk_plugin
。由于Sharesdk通常需要一些平台特定的配置(如Android的AndroidManifest.xml
和iOS的Info.plist
),这里只展示Flutter端的代码,具体的平台配置请参考sharesdk_plugin
的官方文档。
Flutter端代码示例
- 导入插件
在你的Dart文件中导入sharesdk_plugin
:
import 'package:sharesdk_plugin/sharesdk_plugin.dart';
- 初始化插件
在应用启动时初始化sharesdk_plugin
。通常你可以在main.dart
的MyApp
类的构造函数或者initState
方法中进行初始化。
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化Sharesdk插件
await SharesdkPlugin.init(
appId: "你的APP_ID", // 替换为你的实际APP_ID
secret: "你的SECRET", // 替换为你的实际SECRET(如果有的话)
);
runApp(MyApp());
}
- 配置分享内容并分享
创建一个方法来配置并分享内容。例如,分享文本到微信:
void shareToWeChat() async {
try {
bool result = await SharesdkPlugin.share(
platform: SharesdkPlatform.WECHAT_SESSION, // 分享到微信会话
contentType: SharesdkContentType.TEXT,
text: "这是一段分享的文本内容!",
imageUrl: null, // 如果有图片,可以设置为图片的URL
title: "分享标题",
description: "分享描述",
site: "你的网站名称",
siteUrl: "你的网站URL",
);
if (result) {
print("分享成功");
} else {
print("分享失败");
}
} catch (e) {
print("分享时发生错误: $e");
}
}
- 在UI中调用分享方法
你可以在你的UI组件中添加一个按钮来触发分享动作:
import 'package:flutter/material.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await SharesdkPlugin.init(
appId: "你的APP_ID",
secret: "你的SECRET",
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Sharesdk Plugin Demo'),
),
body: Center(
child: ElevatedButton(
onPressed: shareToWeChat,
child: Text('分享到微信'),
),
),
),
);
}
}
这个示例展示了如何在Flutter中使用sharesdk_plugin
进行基本的文本分享。对于其他类型的分享(如图片、视频、网页链接等),你可以根据需要调整contentType
和其他参数。
请确保你已经按照sharesdk_plugin
的官方文档完成了所有必要的平台特定配置,否则分享功能可能无法正常工作。