前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flutter 省会选择器

Flutter 省会选择器

作者头像
大话swift
发布2019-07-03 16:23:24
8510
发布2019-07-03 16:23:24
举报
文章被收录于专栏:大话swift

上篇怎么说了Flutter的数据通信简单流程,这次我们基于此写一个plugin实现省会选择器

下面我们我们梳理一下创建过程:

我们使用idea进行创建项目(想学习命令行的自行查阅),此处就略过啦,直接开始实践:此处我们略过iOS直接来Android

此处我们分成三部分:

1 dart文件实现调用和监听回调

2 配置Android原生依赖library

3 进行plugin桥接

好了我们开始

1 dart文件负责调用

对于flutter调用原生其实是内部的channel负责传递和回调的(底层C++实现不在我们讨论的范围之内)

由于flutter是通过channel进行调用和监听的,而内部是怎么区分不同的channel和进行调用呢?答案是channel的名称和方法名称字符串,因此只需要知道第三方库的通信标志和调用方法名即可实现调用。因此1是非必须的,但是为了方便用户调用此处又是必须的……

2 Android依赖

由于我们的用户大多是iOS开发者,此处我们也就不多说啦

3我们只需细说桥接部分,因为跨平台之所以为跨平台一个很好的原因就是流程和逻辑是共通的……对于我们程序员和工程师来说对于流程和整体的感知是必不可少的……

1 2 3我们就不细说啦,专注说一下其中的踩坑:

坑1:

关于回调:

对于对plugin有兴趣的都看过实例电量获取,感觉一招吃天下啦。刚开始我也是按照这个执行的,成功的出现了wheel选择功能,但是选择数据之后crash?

为甚呢?这是因为你不能长时间的持有Result,它们会的回调之后立即释放掉,你需要使用channel的invoke从原生回调flutter来进行通信

坑2:

发布:

为啥发布到平台需要Google,这对于天朝的我们是多么大的一个屏障啊!!!

因此只能选择不能使用或者使用git啦

好啦,现在就说一下怎么使用我们的选择器

dependency

province_provider:

git:

url: git@github.com:skeyboy/provinece_picker.git

tag: 0.0.1

Init

导包

import 'package:province_provider/province_provider.dart';

初始化

ProvinceProvider provinceProvider = new ProvinceProvider();

provinceProvider.provinceCallback(_handler);

Future<dynamic> _handler(MethodCall methodCall){

if(methodCall.method == "provinceResult"){

Map<dynamic, dynamic> result = methodCall.arguments;

var type = result["type"];

if(type == "province"){

setState(() {

Map<dynamic, dynamic> info = result["value"];

_platformVersion = "$info";

});

}

}

return Future.value(true);

}

Call

Future<void> show() async {

String platformVersion = "None";

final dynamic result = await provinceProvider.showProvinceProvider("选择籍贯");

setState(() {

_platformVersion = "$locationInfo";

});

到此就是一个完整的使用啦………

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-11-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大话swift 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • dependency
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档