1.在pubspec.yaml添加fluwx库
dependencies:
flutter:
sdk: flutter
# https://pub.flutter-io.cn/packages/fluwx
# https://github.com/OpenFlutter/fluwx
fluwx: ^3.6.1+3
Android配置
如果需要微信回调,需要配置WXEntryActivity和WXPayEntryActivity,如果不使用回调,则不需要特殊配置。详见官方doc
IOS配置
如官方文档所示,需要配置ios的URLSchema, LSApplicationQueriesSchemes or universal link
ios/Runner/Info.plist
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>your url name</string>
<key>CFBundleURLSchemes</key>
<array>
<string>your scheme</string>
</array>
</dict>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>weixin</string>
<key>CFBundleURLSchemes</key>
<array>
<string>you wechat appid</string>
</array>
</dict>
</array>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>wechat</string>
<string>weixin</string>
<string>weixinULAPI</string>
</array>
其中CFBundleURLTypes的第一项是为了能够从url跳回APP所设置
ios/Runner/Runner.entitlements
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- ... other keys -->
<key>com.apple.developer.associated-domains</key>
<array>
<string>webcredentials:your universal link</string>
</array>
<!-- ... other keys -->
</dict>
</plist>
这里的universal link要与微信开放平台上的设置保持一致。
2.申请微信分享APPID
@override
void initState() {
super.initState();
_initShare();
}
_initShare() async {
await fluwx.registerWxApi(
appId: "微信分享appid",
doOnAndroid: true,
doOnIOS: true,
universalLink: "ios要填这个https://your.univerallink.com/link/");
var result = await fluwx.isWeChatInstalled;
print("is installed $result");
}
3.定义分享items,ShareOpt的参数包括标题、图片、分享类型(如好友、朋友圈等),回调方法(当点击后,可以在回调中做相应的分享)
/*
* @param shareInfo - {url: '', title: '', image: '',}
*/
weChatShareWebPage(Map shareInfo, fluwx.WeChatScene type) {
String pic = shareInfo['image'] as String;
String url = shareInfo['url'] as String;
if (url == '' || url.isEmpty) {
url = Constant.shareUrl;
}
var model = fluwx.WeChatShareWebPageModel(
url,
description: '微信分享描述',
title: shareInfo['title'],
thumbnail: fluwx.WeChatImage.network(pic),
scene: type,
);
fluwx.shareToWeChat(model);
}
关于更多分享方式可以参考:
https://pub.flutter-io.cn/packages/fluwx
https://github.com/OpenFlutter/fluwx