前言
隨著 Flutter越來越火熱,我相信越來越多的小伙伴都躍躍欲試。但是一個(gè)很重要的問題是,很多第三方
SDK,如微信SDK,都無法在Flutter上直接使用。所以,我這幾天開發(fā)了一個(gè)微信SDK的插件,希望能夠一定程度上幫助到大家。
Fluwx要做什么
- 分享
- 登錄
- 支付
這是Fluwx的目標(biāo)?,F(xiàn)在Fluwx仍在開發(fā)階段,android分享部分已經(jīng)完成,ios部分還在持續(xù)開發(fā)。如果你想也成為Fluwx的開發(fā)者,可以給我留言。
需要準(zhǔn)備的
使用Fluwx之前,強(qiáng)烈建議先閱讀微信SDK官方文檔,
這有助于你使用Fluwx。Fluwx的api字段名稱基本和官方的字段名稱是一致的。
引入
在pubspec.yaml文件中添加如下代碼:
dependencies:
fluwx: ^0.0.1
初始化
Fluwx.registerApp(RegisterModel(appId: "your app id", doOnAndroid: true, doOnIOS: true));
- appId:在微信平臺(tái)申請(qǐng)的appId。
- doOnAndroid:是否在android平臺(tái)上執(zhí)行此操作。
- doOnIOS:是否在平臺(tái)上執(zhí)行此操作。
每一個(gè)字段都是非必須的,但是如果不傳appId或doOnAndroid: false或者doOnIOS: false,請(qǐng)務(wù)必在對(duì)應(yīng)平臺(tái)手動(dòng)注冊(cè)WXApi,以保證
Fluwx正常工作。
注冊(cè)完成后,請(qǐng)?jiān)趯?duì)應(yīng)平臺(tái)添加如下代碼:
在Android上:
FluwxShareHandler.setWXApi(wxapi)
在iOS上:
isWeChatRegistered = YES;
你也可以取消注冊(cè)你的app。
Fluwx.unregisterApp(RegisterModel(doOnAndroid: true, doOnIOS: true));
注意:盡管可以通過Fluwx完成微信注冊(cè),但一些操作依然需要在對(duì)應(yīng)平臺(tái)進(jìn)行設(shè)置,如配置iOS的URLSchema等。
開始分享
以分享文本和網(wǎng)址為例:
var fluwx = Fluwx();
fluwx.share(WeChatShareImageModel(image: "imagePath",thumbnail: "thumbanailPath"));
fluwx.share(
WeChatShareWebPageModel(
webPage: "https://github.com/JarvanMo/fluwx",
title: "Fluwx",
thumbnail: "http://d.hiphotos.baidu.com/image/h%3D300/sign=1057e22c6ed9f2d33f1122ef99ee8a53/3bf33a87e950352aadfff8c55f43fbf2b3118b65.jpg",
)).then((result){
},
onError: (msg){
});
fluwx.share(WeChatShareModel)目前僅支持系統(tǒng)內(nèi)WeChatShareModel的子類,不支持自定義。
所有字段名字和官方文檔基本是一致的。
圖片處理
圖片僅支持png和jpg。
目前所有需要圖片的地方支持網(wǎng)絡(luò)圖片及assets圖片。</br>
使用assets圖片需要添加assets://。</br>
也可以在assets圖片添加?package=package_name以讀取指定包的圖片。</br>
未來可能支持file://。</br>
如果不指定schema或者schema錯(cuò)誤,將會(huì)被處理為網(wǎng)絡(luò)圖片,請(qǐng)謹(jǐn)慎。</br>
注意
所有涉及縮略的最好給Fluwx一個(gè)合格的圖片(小于32k,小程序小于120k),否則Fluwx將會(huì)對(duì)圖片進(jìn)行處理,這樣做的結(jié)果可能并不是你所預(yù)期的,如縮略圖被裁剪。
項(xiàng)目傳送門