Flutter集成微信SDK,实现微信相关功能

flutterImg.png

插件选择 fluwx

https://pub.dev/packages/fluwx
flutter中集成fluwx插件,一套代码可以调用iOS和安卓微信SDK的相关功能

准备工作 (下面只介绍iOS端如何配置)

  • 首先要配置apple-app-site-association文件,这是一个json格式文件,但是没有后缀.如何判断是json文件.见下图

image.png

  • apple-app-site-association文件的内容如下图

image.png

  • 确认前两步正确后,跟运维沟通,把这个文件放在接口服务器的根目录下或者.well-known目录下,配置的路径如下:

假如接口域名是:baidu.xyz
https://baidu.xyz/.well-known/apple-app-site-association
把这个链接放在浏览器中,建议safari中打开,谷歌浏览器会有缓存.两种情况:有人说在浏览器中直接打开,有人说输入链接后是下载这个文件.我的是第一种,在浏览器中打开的.

测试配置的是否正确,把
https://baidu.xyz/.well-known/apple-app-site-association 放在手机备忘录里,长按如果出现下面描述,在…中打开就代表正确了(前提是手机必须安装了此app)

IMG_0073.PNG

  • 注册微信开发者平台,注意一个点

UniversalLinks一栏填写:https://baidu.xyz/

  • 在Xcode里设置domains,如下图

image.png

备注:有一个坑,之前我配置都是正确的,但是运维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
喜欢就支持一下吧
点赞0 分享