对于淘系电商APP或其他类似的APP而言,获取剪贴板上的淘口令,再解析出具体的商品详情,是整个APP的核心业务操作,就像下面图片展示的这样。

IMG_B955B557304E-1.jpeg

下面我们就用Flutter实现这个功能,首先是前面一部分导入相关引用和常规页面布局代码,直接复制就好了。

import 'package:flutter/material.dart';

import 'package:flutter/cupertino.dart';

import 'package:flutter/services.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {

@override

Widget build(BuildContext context) {

return MaterialApp(

title: 'Flutter Demo',

home: MyHomePage(),

);

}

}

class MyHomePage extends StatefulWidget {

@override

_MyHomePageState createState() => _MyHomePageState();

}

接下来就是主要代码,我们需要实现组件绑定观察者(WidgetsBindingObserver)抽象类,使用组件(Widgets)图层绑定注册的类的接口,我们会覆盖它的App生命周期状态发生改变(didChangeAppLifecycleState)方法,其返回值类型是应用生命周期状态(AppLifecycleState)类。

应用生命周期状态(AppLifecycleState)类有几个常量,分别是:等待(AppLifecycleState.inactive)、暂停(AppLifecycleState. paused)和恢复(AppLifecycleState. resumed)。

class _MyHomePageState extends State with WidgetsBindingObserver {

@override

void initState() {

// 在当前页面放一个观察者。

WidgetsBinding.instance.addObserver(this);

super.initState();

}

@override

void dispose() {

// 移除当前页面的观察者。

WidgetsBinding.instance.removeObserver(this);

super.dispose();

}

@override

void didChangeAppLifecycleState(AppLifecycleState state) {

// 当App生命周期状态为恢复时。

if (state == AppLifecycleState.resumed) {

getClipboardContents();

}

}

/// 使用异步调用获取系统剪贴板的返回值。

getClipboardContents() async {

// 访问剪贴板的内容。

ClipboardData clipboardData = await Clipboard.getData(Clipboard.kTextPlain);

// 剪贴板不为空时。

if (clipboardData != null && clipboardData.text.trim() != '') {

String _name = clipboardData.text.trim();

// 淘口令的正则表达式,能判断类似“¥123456¥”的文本。

if (RegExp(r'[\uffe5]+.+[\uffe5]').hasMatch(_name)) {

// 处理淘口令的业务逻辑。

showDialog(

context: context,

barrierDismissible: true,

builder: (BuildContext context) {

return CupertinoAlertDialog(

title: Text('淘口令'),

content: Text(_name),

);

},

);

}

}

}

@override

Widget build(BuildContext context) {

return Scaffold(

appBar: AppBar(

title: Text('Flutter Demo 主页'),

),

);

}

}

如果把上面两段代码合成一个文件,执行调试,然后把APP放在后台,再复制一段淘口令,然后回到APP时,就会像下面一样弹出窗口。

IMG_3DEAAD8252F7-1.jpeg

作者:何小有

链接:https://www.jianshu.com/p/2eef7d735c02

来源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

PHP正则淘口令,Flutter代码锦囊---淘口令复制弹窗相关推荐

  1. Flutter代码锦囊---淘口令复制弹窗

    对于淘系电商APP或其他类似的APP而言,获取剪贴板上的淘口令,再解析出具体的商品详情,是整个APP的核心业务操作,就像下面图片展示的这样. 下面我们就用Flutter实现这个功能,首先是前面一部分导 ...

  2. 淘宝店铺装修代码大全,淘宝页面设计代码.

    淘宝店铺装修代码大全    快去学习一下吧这里有我做的实例. http://shop110214125.taobao.com 有什么问题可留言我会尽量解答. http://txw100.com/  如 ...

  3. Flutter代码锦囊---自定义曲线裁剪

    在实际开发中,很多APP里面都会有一些布局需要用到曲线,而不是直线,下面举两个例子,一个是京东APP的页面,一个是淘宝APP的页面,它们都用到了曲线. 在Flutter中可以怎么实现这个效果呢,有一个 ...

  4. Flutter代码锦囊---魔改进度条

    Flutter框架提供了Material Design风格的线性进度条(LinearProgressIndicator)组件,就是下面的样子,方方正正的,一点也不圆润. 但是很多APP的设计都按照Ma ...

  5. Flutter代码锦囊---摇一摇

    现在很多APP里面的会出现让用户拿起手机摇一摇的场景,除了最常见的微信.QQ等社交APP里面的摇一摇,我们在把APP给测试人员测试的时候,也经常要添加上摇一摇弹窗切换环境的场景,比如下面的场景. 所以 ...

  6. Flutter代码锦囊---集中管理路由与导航

    当一个Flutter项目的页面多来以后,页面跳来跳去的,开发者自己都会晕,所以需要用一个集中.灵活的方式去管理项目中所有页面的路由与导航. 通常我们是使用主页(home)属性设置应用程序的默认路由,即 ...

  7. Flutter代码锦囊---切换时页面保持状态

    一个正常的Flutter项目中,通过底部导航栏(BottomNavigationBar)或者标签栏(TabBar)组件来切换页面内容,是很正常的操作.但是大家是否有发现,每次导航栏或标签栏切换页面时, ...

  8. Flutter代码锦囊---根据环境选择URL地址

    现在要给公司开发一个内部使用的APP,但是因为是小公司,没有多余的服务器资源,只能拿公司的主机当服务器,也只能在通过映射实现外网访问.所以呀,很蛋疼,只能想办法判断用户是在内网使用APP,还是在外网使 ...

  9. 大厂如何开发和部署前端代码?淘宝8年案例解读

    在加入淘宝后,经历了大大小小的开发和部署方式的更迭,同时也有幸在整个的变革潮流中参与过其中的一些能力的建设.今天从一个亲历者的角度,通过自身经历与向同事考究,从"13年石器时代". ...

  10. 淘特 Flutter 流畅度优化实践

    作者:谢伟(韦圣) 不同的业务背景引出不同的技术诉求,"用户体验特爽"是淘特的不懈追求,本文将介绍笔者加入淘特以来在Flutter流畅度方面的诸多优化实践,这些优化不涉及Engin ...

最新文章

  1. Solaris 上网配置
  2. 分享Kali Linux 2016.2第47周虚拟机
  3. python处理excel-python对Excel的读取
  4. python 类-Python 类属性和类方法
  5. elasticsearch api中的get操作
  6. java转换文本文件到xlsx(自制缓冲区,无需先验文件行数)
  7. 实例29:python
  8. netbsd配置gnome桌面
  9. 静态网站生成器将会成为下一个大热门
  10. 【路径规划】基于matlab粒子群算法机器人栅格路径规划【含Matlab源码 018期】
  11. 大家好,我是谢公子,来自深信服—深蓝攻防实验室
  12. 计算机用户guest无法删除吗,Win7怎么删除Guest账户?
  13. java实现身份证正反面图片的身份信息的识别
  14. 重走来时路,这一次我会披荆斩棘
  15. Kindle 可旋转桌面时钟
  16. 青春是一场不失不忘的期许
  17. Web前端之HTML超文本标记语言
  18. kafka消息存储机制和原理
  19. sparksql出现 serious problem at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.generateSplitsInfo
  20. Linux内存池技术

热门文章

  1. springboot+pageoffice实现Word在线编辑
  2. 深度卷积神经网络结构演变
  3. esp8266 蓝牙耳机_基于ON Semi LC823450XD 的蓝牙耳机解决方案
  4. 被 onnx.checker.check_model 检查出的常见错误
  5. 程序员转正答辩ppt
  6. 跨平台数据库ODB实战1-ODB安装
  7. js 弹窗中写html代码,简单了解JavaScript弹窗实现代码
  8. 学习人工智能导论(3)
  9. OCR证件识别及其衍生产品介绍
  10. GEE|typeof、ee.Algorithms.If、ee.Algorithms.IsEqual 语法