Flutter plugin:flutter_qq_bridge

更新

几个月后突然发现竟然有人提 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 地址: 传送门

最后

放上我自己的链接吧:

pub: pub.dartlang.org/packages/fl…

github: github.com/neverwoodsS…

你可能感兴趣的:(Flutter plugin:flutter_qq_bridge)