一個被鎖在App裡的點子,影響力是有限的,可一旦它被分享給朋友、在群組中引發討論、或是在社群媒體上激起漣漪,它的價值才會成倍增長。這種「口碑傳播」也是任何App最厲害的成長引擎。
今天,將建立的「分享」按鈕,透過Flutter社群中最受歡迎的套件之一share_plus,讓使用者可以輕而易舉的分享到手機上的任何一個角落。
第一步:認識share_plus套件
share_plus是一個Flutter Favorite套件,它的作用單純且好用,其功能是呼叫iOS和Android作業系統原生的分享 UI。
不需要自己去串接WhatsApp、LINE、Messenger、Telegram、Email或其他任何App的API。只需要告訴share_plus你想分享什麼內容,它就會彈出一個系統層級的分享選單,上面列出了使用者手機上所有可以接收分享的App。使用者可以自己選擇要分享到哪裡,這一切都由作業系統為我們處理,體驗既原生又流暢。
第二步:安裝套件
在你的專案根目錄下,執行以下指令:flutter pub add share_plus
share_plus的一大優點是,對於分享文字和連結這類基礎功能,它通常不需要任何額外的原生平台設定,開箱即用。
第三步:更新資料模型以包含原文連結
根據需求,分享的內容應該包含「靈感摘要」和「原文連結」。但回顧一下我們的Insight模型,似乎還沒有加入原文連結sourceUrl欄位,我們先來補上它。
Step1. 修改insight_model.dart
Step2. 重新產生TypeAdapter
因為我們修改了Hive的模型結構,所以必須重新執行build_runner來更新Adapter檔案:flutter packages pub run build_runner build --delete-conflicting-outputs
Step3. 更新假資料:
打開lib/features/insight/insight_provider.dart,為我們的假資料加上sourceUrl:
// in InsightNotifier's loadInsights method
state = const [
Insight(id: '1', summary: '...', tags: ['...'], sourceUrl: 'https://example.com/article1'),
Insight(id: '2', summary: '...', tags: ['...'], sourceUrl: 'https://example.com/article2'),
// ...
];
第四步:實作分享邏輯
現在回到主頁,讓分享按鈕啟動。
打開lib/presentation/home_page.dart。我們在Day 11已經建立了按鈕列,現在只需要找到分享按鈕的 onPressed回呼函式並填入邏輯。
註:我們的分享按鈕不在卡片上,而在卡片下方的按鈕列中,讓我們來實作它。
是時候看看成果了!
這個功能將我們的App從一個「個人工具」變成了一個具有「社交潛力」的平台,賦予了使用者成為內容的傳播者,這對App的自然成長相當重要。
現在,朋友收到了你分享的連結,點擊了它,然後......跳轉到了瀏覽器,這個體驗不錯,但如果點擊連結可以直接打開我們的App,甚至跳到對應的那一則靈感內容,那將會是更棒的體驗?明天將進行深層連結 (Deep Linking)的實作,敬請期待:)
【哈囉你好:)感謝你的閱讀!其他我會常出沒的地方:Threads】