更新
幾個月後突然發現竟然有人提 issue,看了一下是 Xcode 配置依賴的問題。
畢竟我也不是 iOS 開發者,只能說一下我是怎麼做的。
我試過且成功的新增依賴的最簡單步驟:
Runner -> Info -> Url Types 新增 URL_Schemes "tencent$app_id" (app_id 是你在開發者平臺註冊的應用 id)
Runner -> Build Phases -> Link Binary With Libraries -> 新增 SystemConfiguration.framework 依賴
然後就沒了。但是不排除其他朋友在使用的時候可能遇到問題,但是就像上面說的我不是 iOS 開發者,所以對 Xcode 的配置不是很精通,請見諒不能提供太詳細的指導。
前言
聽說 Flutter 已經有一段日子了,甚至挺早的時候就跑過 demo,但是直到上週才開始認真的開始學習。學著學著難免會想要用 Flutter 實現一波自己公司的 App。剛開始做就遇到了一個障礙:公司 App 採用的 QQ 登入和分享功能似乎做不了?我也上 pub 搜到過一個flutter_qq,但遺憾的是隻支援 Android,github 上也只有同一個作者做的這個 plugin。由於下了比較大的決心要搞出個樣子出來,所以就只能捲起袖子自己擼一個 plugin 了。這一擼就是好幾天的時光過去了。因為我不懂 iOS 開發,除了 Flutter 自身的問題以外,中途還遇到了不少 XCode 和 OC 的問題,也算是被折騰個半死。所以雖然最終出來的結果只能算湊合,但好歹也算是同時支援了 Android 和 iOS,填補了一個小空白,姑且不管需要的人是否那麼多(QQ sdk 好像是比較冷門),還是分享一下吧。
正文
1. 新增依賴
① in pubspec.yaml
dependencies:
···
flutter_qq_bridge: ^0.0.3
複製程式碼
② terminal
flutter packages get
2. 程式碼中使用
import 'package:flutter_qq_bridge/flutter_qq_bridge.dart';
① 註冊 QQ sdk 例項
FlutterQqBridge.registerQq('$AndroidAppId', '$iOSAppId');
複製程式碼
若需等待註冊結果可新增 await
② QQ 登入
var res = await FlutterQqBridge.login();
Tencent tencent = Tencent.fromJson(res.message);
複製程式碼
③ 獲取 QQ 使用者資訊
var userRes = await FlutterQqBridge.getUserInfo(tencent);
QqUser user = QqUser.fromJson(userRes.message);
複製程式碼
④ 分享(目前僅支援新聞類分享)
var res = await FlutterQqBridge.shareToQQ(ShareQqContent(
title: 'Remeet-只有00後的脫單神器',
summary: '我們只想做個簡單幹淨的聊天軟體,幫你遇見喜歡的人。',
targetUrl: 'http://a.app.qq.com/o/simple.jsp?pkgname=com.haisong.remeet',
imageUrl: 'http://pp.myapp.com/ma_icon/0/icon_52621236_1517135649/96',
appName: 'Remeet',
));
複製程式碼
3. 別忘了參照 QQ 官方的文件針對 Android 和 iOS 各自做配置
鳴謝
感謝 flutter_qq 的作者,很多地方參考了他的程式碼,在此獻上他的 github 地址: 傳送門
最後
放上我自己的連結吧:
github: github.com/neverwoodsS…