iT邦幫忙

2023 iThome 鐵人賽

DAY 17
0
Mobile Development

好好用的 flutter 套件系列 第 17

好好用的 flutter 套件 - Day 17 flutter_linkify

  • 分享至 

  • xImage
  •  

需求

app 的上的文字通常都不可以copy ,除非是 web ,但是api回來的資料,想要可以被複製或是url被點擊,
就可以使用 flutter_linkify 啦!

flutter_linkify - Readme

將文字 URL 和電子郵件轉換為 Flutter 文字中可點擊的內嵌連結。

url

Linkify(
  text: "Made by google https://www.youtube.com/c/madebygoogle",
  options: LinkifyOptions(humanize: false),
);

copy

SelectableLinkify(
  text: "Made by https://cretezy.com\n\nMail: example@gmail.com",
);

flutter_linkify - Install

直接在 pubspec.yaml 加上 flutter_linkify: ^6.0.0 ,然後pub get 
dependencies:
  flutter_linkify: ^6.0.0

https://ithelp.ithome.com.tw/upload/images/20231001/2012164386sXzQrDYm.png

flutter_linkify - Example

在 /lib/main.dart 加入 程式
import 'package:flutter_linkify/flutter_linkify.dart';

url開啟網頁和 url_launcher (Day6)

Future<void> _onOpen(LinkableElement link) async {
    if (!await launchUrl(Uri.parse(link.url))) {
      throw Exception('Could not launch ${link.url}');
    }
  }  

使用方式

    SelectableLinkify(
        onOpen: _onOpen,
        text:
            "Day17 Selectablelinkify by https://gdg.tw\n\nMail: kevinfake@gmail.com",
            ),
        SizedBox(height: 32),
     Linkify(
        onOpen: _onOpen,
        text:
        "Day17 linkify by https://gdg.tw\n\nMail: kevinfake@gmail.com",
        ),

執行結果

可以選擇文字
https://ithelp.ithome.com.tw/upload/images/20231001/20121643WxwchF7zfK.png

點擊email後 (點擊url 就直接外開網頁就不秀了)
https://ithelp.ithome.com.tw/upload/images/20231001/20121643lV0f5mooOJ.png

issue

選擇文字時沒有出現 "copy" 
使用另一個方法看看
SelectableText('Day17 SelectableText by https://gdg.tw\n\nMail: kevinfake@gmail.com"',
                cursorColor: Colors.red,
                showCursor: true,
                toolbarOptions: ToolbarOptions(
                    copy: true,
                    selectAll: true,
                    cut: false,
                    paste: false
                ),
            ),

修正結果

https://ithelp.ithome.com.tw/upload/images/20231001/20121643sSlHnFcrGa.png

心得

把文字轉換成url 可以點擊,還滿方便,但可以選擇就有點bug,但有另一方法還可以解決,
就看你想要什功能嘍!

上一篇
好好用的 flutter 套件 - Day 16 connectivity_plus
下一篇
好好用的 flutter 套件 - Day 18 auto_size_text
系列文
好好用的 flutter 套件30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言