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

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

format,png

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时,就会像下面一样弹出窗口。

format,png

IMG_3DEAAD8252F7-1.jpeg

作者:何小有

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

来源:简书

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值