Flutter自动链接识别插件whitecodel_auto_link的使用

发布于 1周前 作者 sinazl 来自 Flutter

Flutter自动链接识别插件whitecodel_auto_link的使用

概述

此脚本自动化处理将Flutter APK和IPA文件构建并上传到WhiteCodel App Share的过程。

同时支持IPA构建和APK上传,从而加快了整个过程的速度🚀。

视频教程

YouTube Video

前提条件

在使用此脚本之前,请确保你已经具备以下条件:

  • Flutter SDK:确保你的机器上已安装Flutter。你可以通过访问Flutter官网获取安装指南。
  • WhiteCodel App Share Token:通过访问WhiteCodel App Share账户页面获取你的WhiteCodel App Share令牌。

安装

dart pub global activate whitecodel_auto_link

使用

whitecodel_auto_link login
whitecodel_auto_link logout
whitecodel_auto_link

示例代码

下面是一个完整的示例,展示了如何使用whitecodel_auto_link插件来处理Flutter项目的自动链接识别。

示例项目结构

my_flutter_app/
├── lib/
│   ├── main.dart
├── pubspec.yaml
├── README.md
└── android/
    └── build.gradle

主文件 lib/main.dart

import 'package:flutter/material.dart';
import 'package:whitecodel_auto_link/whitecodel_auto_link.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Auto Link Example',
      home: Scaffold(
        appBar: AppBar(
          title: Text('Auto Link Example'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text(
                'This is a demo for auto link recognition plugin.',
              ),
              ElevatedButton(
                onPressed: () async {
                  // 初始化插件
                  await WhitecodelAutoLink.init();
                  // 执行链接识别
                  final links = await WhitecodelAutoLink.autoLink("Check out my site: https://example.com");
                  print(links);
                },
                child: Text('Identify Links'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

pubspec.yaml

name: my_flutter_app
description: A new Flutter project.
publish_to: 'none'
version: 1.0.0+1

environment:
  sdk: ">=2.12.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  whitecodel_auto_link: ^1.0.0

dev_dependencies:
  flutter_test:
    sdk: flutter

flutter:
  uses-material-design: true

更多关于Flutter自动链接识别插件whitecodel_auto_link的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter自动链接识别插件whitecodel_auto_link的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是一个关于如何在Flutter项目中使用whitecodel_auto_link插件来自动识别并高亮显示链接(如URL、电子邮件、电话号码等)的代码示例。

首先,确保你已经在pubspec.yaml文件中添加了whitecodel_auto_link依赖项:

dependencies:
  flutter:
    sdk: flutter
  whitecodel_auto_link: ^最新版本号  # 请替换为实际最新版本号

然后,运行flutter pub get来安装依赖项。

接下来,在你的Flutter应用中,你可以按照以下步骤使用whitecodel_auto_link插件:

import 'package:flutter/material.dart';
import 'package:whitecodel_auto_link/whitecodel_auto_link.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Auto Link Example'),
        ),
        body: Padding(
          padding: const EdgeInsets.all(16.0),
          child: AutoLinkText(
            'Check out our website at https://www.example.com or send an email to support@example.com. You can also call us at +1234567890.',
            textStyle: TextStyle(fontSize: 18),
            linkStyle: TextStyle(color: Colors.blue, decoration: TextDecoration.underline),
            onLinkTap: (link) {
              // 处理链接点击事件
              if (link.startsWith('http')) {
                // 打开网页
                launchUrl(Uri.parse(link));
              } else if (link.contains('@')) {
                // 发送邮件(这里仅作为示例,实际发送邮件需要更多代码)
                print('Email link tapped: $link');
              } else if (link.startsWith('+')) {
                // 拨打电话(注意:在iOS上拨打电话需要额外的权限和配置)
                showDialog(
                  context: context,
                  builder: (BuildContext context) {
                    return AlertDialog(
                      title: Text('Dial Number'),
                      content: Text('Do you want to call $link?'),
                      actions: <Widget>[
                        TextButton(
                          onPressed: () {
                            Navigator.of(context).pop();
                          },
                          child: Text('Cancel'),
                        ),
                        TextButton(
                          onPressed: () async {
                            if (await canLaunchUrl(Uri.parse('tel:$link'))) {
                              await launchUrl(Uri.parse('tel:$link'));
                            } else {
                              throw 'Could not launch $link';
                            }
                            Navigator.of(context).pop();
                          },
                          child: Text('Call'),
                        ),
                      ],
                    );
                  },
                );
              }
            },
          ),
        ),
      ),
    );
  }
}

Future<void> launchUrl(Uri url) async {
  if (!await canLaunchUrl(url)) {
    throw 'Could not launch $url';
  }
  await launchUrl(url);
}

Future<bool> canLaunchUrl(Uri url) async {
  if (await canLaunch(url.toString())) {
    return true;
  } else if (await canLaunch('https://$url')) {
    return true; // fallback for iOS webview_flutter
  }
  return false;
}

说明:

  1. 依赖项添加:确保在pubspec.yaml中添加了whitecodel_auto_link依赖项。
  2. 导入包:在Dart文件中导入whitecodel_auto_link包。
  3. AutoLinkText组件:使用AutoLinkText组件来自动识别并高亮显示文本中的链接。
  4. 样式设置:通过textStylelinkStyle属性来设置普通文本和链接文本的样式。
  5. 链接点击事件:通过onLinkTap回调函数来处理链接点击事件,这里根据链接的类型(URL、电子邮件、电话号码)分别处理。
  6. 打开链接:使用launchUrl函数来打开URL或拨打电话。注意,拨打电话在iOS上需要额外的权限和配置。

这段代码展示了如何使用whitecodel_auto_link插件来自动识别并处理文本中的链接,希望对你有所帮助!

回到顶部