iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 25
1
Mobile Development

iOS Developer Learning Flutter系列 第 25

iOS Developer Learning Flutter. Lesson24 Local Storage + URL Launcher

  • 分享至 

  • xImage
  •  

Today Preview

Yes

今天介紹UserDefault 跟 openURL ☘️☘️☘️
這些套件就像

雖然只是簡單介紹
但根據八二法則
這20%的主要功能
也足夠應付80%的場景了(真的嗎)

寫在前面
我覺得Flutter套件的家有一點做得不錯
就是都會有一頁Example
可以看到套件開發者最正確的寫法

如果覺得想再深入今天的內容
也可以去瞧瞧

1. SharedPreferences

Android的UserDefault也叫SharedPreferences
不過雖然名字不同
用法大家都差不多
就是根據不同型別讀取或寫入☘️☘️☘️
要注意的就是async/await又出現了

  void getRecentKeywords () async {
    SharedPreferences pref = await SharedPreferences.getInstance();
    setState(() {
      keywords = pref.getStringList("RecentKeywords") ?? [];
    });
  }

  void setRecentKeywords () async {
    SharedPreferences pref = await SharedPreferences.getInstance();
    pref.setStringList("RecentKeywords", keywords);
  }

2. url_launcher

跟以前openURL一樣
除了可以開網頁
還可以開電話, Mail, 簡訊等等...☘️☘️☘️
但不一樣的是
這邊開網頁不是外開Safari了
而是使用SFSafariViewController⚠️⚠️⚠️
(還是要async/await唷)

  void _launchUrlByNumber(int number) async {
    String url = "";

    switch (number) {
      case 0: url = "https://ithelp.ithome.com.tw/articles/10237645"; break;
      case 1: url = "https://ithelp.ithome.com.tw/articles/10237866"; break;
      case 2: url = "https://ithelp.ithome.com.tw/articles/10237867"; break;
    }

    if (await canLaunch(url)) {
      await launch(url);
    } else {
      throw 'Could not launch $url';
    }
  }

本集內容Android版請見:iOS Developer Learning Android. Lesson 23

下集預告:Push Notification

最後提供一下github.com/mark33699/IDLF


上一篇
iOS Developer Learning Flutter. Lesson23 ImagePicker
下一篇
iOS Developer Learning Flutter. Lesson25 Push Notification
系列文
iOS Developer Learning Flutter30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言