首先抱怨一下sharesdk這個三方,上個kottlin版的項目是使用sharesdk的,然後本想着flutter版也要sharesdk的,結果到集成的時候,各種調用不起來,把flutter版的demo跑了起來也是出現調用不起來的情況,測試手機:華爲7,榮耀還是唱響?,我的P10也是不行,後面因爲急着上線iOS就耽擱了一個禮拜。
今天又抽空把微信登錄做了一遍,算了還是用原生的寫,索性的用了網上的fluwx
,感覺還可以,還集成了微信支付在裏面。
直接上步驟:
項目地址:
https://github.com/OpenFlutter/fluwx
直接在https://pub.dev/
上搜索:fluwx
配置:
在flutter
中的yaml
文件中進行配置:
fluwx: ^1.0.4
初始化:
在main.dart
中進行初始化操作,儘可能早的初始化
await fluwx.register(
appId: "wxxxxxxxxxxxxx",
doOnAndroid: true,
doOnIOS: true,
enableMTA: false);
var result = await fluwx.isWeChatInstalled();
- 記得填寫你的appId
登錄頁進行
例如在login.dart中
String _result = "無";
@override
void initState() {
super.initState();
fluwx.responseFromAuth.listen((data) {
if (mounted) {
}
// 這裏返回結果,errCode=1爲微信用戶授權成功的標誌,其他看微信官方開發文檔
setState(() {
_result = "initState ====== ${data.errCode} --- ${data.code}";
int errCode = data.errCode;
if (errCode == Constant.WECHAT_SUCCESS) {
String code = data.code;
print('code $code');
getWeChatAccessToken(code);
}else {
Util.showToast("${data.code}");
}
print('aaaa ====== > $_result');
});
});
}
@override
void dispose() {
super.dispose();
_result = null;
}
// 某個按鈕觸發的操作
void _weChatLogin(){
fluwx.sendAuth(
scope: "snsapi_userinfo", state: "wechat_sdk_demo_test")
.then((data) {
setState(() {
});
}).catchError((e){print('weChatLogin e $e');});
}
到這裏我們就已經將微信登錄的操作完成了,這裏我們只獲取到微信登錄裏的code
,我們可以通過這個code
去請求access_token
和open_id
,再通過access_token
獲取到微信用戶信息等。
更多資源請訪問:
關注「蛇崽網盤教程資源」公衆號 ,在微信後臺回覆「領取資源」,獲取IT資源200G乾貨大全。
在微信後臺回覆「130個小程序」,即可免費領取享有導入就能跑的微信小程序
在微信後臺回覆「Flutter移動電商」,即可免費領取Flutter移動電商系列全套