插件选择 fluwx
https://pub.dev/packages/fluwx
flutter中集成fluwx插件,一套代码可以调用iOS和安卓微信SDK的相关功能
准备工作 (下面只介绍iOS端如何配置)
- 首先要配置apple-app-site-association文件,这是一个json格式文件,但是没有后缀.如何判断是json文件.见下图
- apple-app-site-association文件的内容如下图
- 确认前两步正确后,跟运维沟通,把这个文件放在接口服务器的根目录下或者.well-known目录下,配置的路径如下:
假如接口域名是:baidu.xyz
https://baidu.xyz/.well-known/apple-app-site-association
把这个链接放在浏览器中,建议safari中打开,谷歌浏览器会有缓存.两种情况:有人说在浏览器中直接打开,有人说输入链接后是下载这个文件.我的是第一种,在浏览器中打开的.
测试配置的是否正确,把
https://baidu.xyz/.well-known/apple-app-site-association
放在手机备忘录里,长按如果出现下面描述,在…中打开就代表正确了(前提是手机必须安装了此app)
- 注册微信开发者平台,注意一个点
UniversalLinks一栏填写:https://baidu.xyz/
- 在Xcode里设置domains,如下图
备注:有一个坑,之前我配置都是正确的,但是运维nginx配置有问题,如果上述配置都正确,但是在备忘录里就是不能找到自己的app,那就有可能是运维的nginx配置有问题.
至此准备工作就完成了,下面就是flutter中fluwx的相关代码了
main.dart中的代码
Future initWeiXin() async {
await registerWxApi(
appId: "wx11111111111",(微信开放平台appid)
doOnAndroid: true,
doOnIOS: true,
universalLink: 'https://baidu.xyz/',
);
}
复制代码
点击微信登录的代码
void requestWeChatLogin(String code) async {
String commonOpenStr = await UserService().getWeiXinOpenId({
'appid': 'wx11111111111',
'secret': 'b9e61111111111111111111',(微信开放平台scecret)
'code': code,
'grant_type': 'authorization_code',
});
复制代码
微信分享代码(参数可以看fluwx中文文档)
void requestWeChatLogin(String code) async {
shareToWeChat(WeChatShareWebPageModel(
'${widget.homeListModel.shareLink}',
scene: WeChatScene.SESSION,
thumbnail: WeChatImage.asset(img('icons/share_icon.png')),
title: '${widget.homeListModel.title}',
description: widget.homeListModel.brief != null
? '${widget.homeListModel.brief}'
: '',
)
复制代码
- 提示:微信分享出去的链接想要跳转到Safari到app内部.需要解决跨域问题.
简单举例就是,假如你接口的域名是https://baidu.xyz
那么你点击以后打开的这个网页的链接就不能是这个域名下的 应该换成https://baidu.aaa
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END