1、登录公司微信开放平台账号,注册应用,填写应用的名称、介绍、官网、图片、Universal Links(iOS)等等,Universal Links需要注意一点,最好增加一个路径,比如域名是www.xx
则可以在后面增加一个路径,比如/app/applicationName/, 其中applicationName是可以单独指定这个应用的路径,因为这个域名可能会用于多个app.
2、注册好应用后,到xcode增加微信的白名单,找到info.plist文件,增加白名单,允许当前app,后续直接打开微信应用:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>weixin</string>
<string>weixinULAPI</string>
<string>weixinURLParamsAPI</string>
</array>
3、继续在info.plist文件里,增加URL Type:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>weixin</string>
<key>CFBundleURLSchemes</key>
<array>
<string>微信注册的应用id</string>
</array>
</dict>
</array>
4、配置Associated Domains,Signing & Capabilities,选择Capability增加Associated Domains,然后将域名加入,然后到修改对应域名的apple-app-site-association文件内容,到域名/apple-app-site-association下载文件,编辑文件,编辑好后,发给维护人员,让他帮忙更新下文件,然后重新下载文件,确定文件已经更新了
{
"applinks": {
"apps": [],
"details": [
{
"appID": "xxx.com.aaa.bbb",
"paths": ["/app/bbb/*"]
}
]
}
}
5、到flutter项目导入fluwx,然后pub get引入微信登录插件,并按照下面的截图,在pubSpec文件增加配置:
6、在Flutter的app初始化入口,初始化Fluwx,并监听_fluwx返回的response
WxSdk._() {
_fluwx = Fluwx();
_fluwx.registerApi(appId: _key, universalLink: _universalLink);
_fluwx.addSubscriber((response) {
mylog(msg: "微信授权Response========${response.toString()}");
///微信登录结果
if (response is WeChatAuthResponse && _loginResponse != null) {
_loginResponse!(response);
}
///微信分享结果
else if (response is WeChatShareResponse && _shareResponse != null) {
_shareResponse!(response);
} else if (response is WeChatSubscribeMsgResponse &&
_focusPublicNumberResponse != null) {
_focusPublicNumberResponse!(response);
}
});
}
7、在微信登录页面调用fluwx登录,可以发现没法走到上面的回调方法,打开iOS工程,在Appdelegate文件,按照下面截图增加方法,就可以拿到微信登录的参数了