開發一個小組件App,有一項需求是快捷啟動指定功能,比如微信掃一掃,付款碼等功能,如下圖所示:

快捷啟動分為兩部分:
1.點擊指定區域,進入App并傳入需要打開的功能鏈接
2.從App中打開傳入的鏈接
一.小組件打開App并傳入鏈接
根據官方檔案的描述,點擊Widget視窗喚起APP進行互動指定跳轉支持兩種方式:
widgetURL:點擊區域是Widget的所有區域,適合元素、邏輯簡單的小部件,
Link:通過Link修飾,允許讓界面上不同元素產生點擊回應
Widget支持三種顯示方式,分別是systemSmall、 systemMedium、systemLarge,其中:
1、systemSmall(小號組件)只能用widgetURL修飾符實作URL傳遞接收,
//MARK: -小組件
//快捷啟動small
struct ShortcutWidgetViewS : View {
var date: Date
var data: wShortcutData
var body: some View {
let info = data.infos[0]
ZStack{
Image(uiImage: data.bg).resizable()
}.widgetURL(URL(string:"weixin://scanqrcode"))//這里是跳轉微信掃一掃鏈接
}
}
widgetURL可以掛在任意view即可生效
同一組件多次使用widgetURL,只生效最后一個
2.systemMedium、systemLarge可以用Link或者 widgetUrl處理
//MARK: -大組件
//快捷啟動Large
struct ShortcutWidgetViewL : View {
var body: some View {
ZStack{
Image(uiImage: data.bg).resizable()
VStack{
HStack{
//微信掃一掃鏈接
SwiftUIShortcutCellL(urlPath:"weixin://scanqrcode")
//掃一掃鏈接
SwiftUIShortcutCellL(urlPath:"alipay://platformapi/startapp?saId=10000007")
}
HStack{
//健康碼鏈接
SwiftUIShortcutCellL(urlPath:"alipay://platformapi/startapp?appId=68687564")
//乘車碼鏈接
SwiftUIShortcutCellL(urlPath:"alipay://platformapi/startapp?saId=200011235")
}
HStack{
//付款碼鏈接
SwiftUIShortcutCellL(urlPath:"alipay://platformapi/startapp?appId=20000056")
//QQ掃一掃鏈接
SwiftUIShortcutCellL(urlPath:"mqq://qrcode/scan_qrcode?version=1&src_type=app")
}
}
}
}
}
struct SwiftUIShortcutCellL:View{
var urlPath:String!//跳轉的鏈接
var body:some View{
Link(destination: URL(string: urlPath)!) {
ZStack(content: {
//點擊區域的UI
Image(uiImage: data.bg)
})
}
}
}
二.從App中打開傳入的鏈接
通過步驟一,我們實作了點擊小組件,打開App并傳入資料
在SceneDelegate中實作以下代碼接收資料
App我用的是swift+UIKit ,用其他方式的大佬自行轉換代碼
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
print(URLContexts)
print(URLContexts.first!.url)
}
輸出資料如下

至此我們拿到了點擊區域對應的URL,然后跳轉鏈接就可以了
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
print("URLContexts: \(URLContexts)")
print("URL: \(URLContexts.first!.url)")
UIApplication.shared.open(URLContexts.first!.url, options: [:], completionHandler: nil)
}
三.URL schemes
跳轉鏈接使用的方式是URL schemes
親測有效
支付寶
| 功能 | URL |
| 手機充值 | alipay://platformapi/startapp?saId=10000003 |
| 掃一掃 | alipay://platformapi/startapp?saId=10000007 |
| 賬單 | alipay://platformapi/startapp?appId=20000003 |
| 登錄界面 | alipay://platformapi/startapp?appId=20000008 |
| 銀行卡 | alipay://platformapi/startapp?appId=20000014 |
| 余額 | alipay://platformapi/startapp?appId=20000019 |
| 余額寶 | alipay://platformapi/startapp?appId=20000032 |
| 付款 | alipay://platformapi/startapp?appId=20000056 |
| 轉賬 | alipay://platformapi/startapp?saId=20000116 |
| 餓了么 | alipay://platformapi/startapp?appId=20000120 |
| 收款碼 | alipay://platformapi/startapp?appId=20000123 |
| 自選股 | alipay://platformapi/startapp?appId=20000134 |
| 會員 | alipay://platformapi/startapp?appId=20000160 |
| 理財 | alipay://platformapi/startapp?appId=20000165 |
| 通訊錄 | alipay://platformapi/startapp?appId=20000166 |
| 記賬 | alipay://platformapi/startapp?appId=20000168 |
| 生活繳費 | alipay://platformapi/startapp?appId=20000193 |
| 花唄 | alipay://platformapi/startapp?appId=20000199 |
| 黃金 | alipay://platformapi/startapp?appId=20000218 |
| 總資產 | alipay://platformapi/startapp?appId=20000243 |
| 我的快遞 | alipay://platformapi/startapp?appId=20000754 |
| 滴滴 | alipay://platformapi/startapp?appId=20000778 |
| 基金 | alipay://platformapi/startapp?appId=20000793 |
| 語音助手 | alipay://platformapi/startapp?appId=20000835 |
| 充值中心 | alipay://platformapi/startapp?appId=20000987 |
| 搜索 | alipay://platformapi/startapp?appId=20001003 |
| 螞蟻森林 | alipay://platformapi/startapp?appId=60000002 |
| 流量錢包 | alipay://platformapi/startapp?appId=60000057 |
| 商家服務 | alipay://platformapi/startapp?appId=60000081 |
| 共享單車 | alipay://platformapi/startapp?appId=60000155 |
| 螞蟻莊園 | alipay://platformapi/startapp?appId=66666674 |
| 余利寶 | alipay://platformapi/startapp?appId=66666708 |
| 惠支付 | alipay://platformapi/startapp?appId=68687009 |
| 養老 | alipay://platformapi/startapp?appId=68687131 |
| 余額寶 | alipay://platformapi/startapp?appId=77700124 |
微信
| 功能 | URL |
| 打開微信 | weixin:// |
| 掃一掃 | weixin://scanqrcode |
系統
| 功能? | URL |
| App Store | itms-apps:// |
| 備忘錄 | mobilenotes:// |
| 郵件 | mailto:// |
| 寫給指定郵件 | mailto://address@126.com |
| 給指定號碼打電話 | tel://12315 |
| 短信 | sms:// |
| 給指定號碼發短信 | sms://15011111111 |
| 日歷 | calshow:// |
| 相冊 | photos-redirect:// |
| 音樂 | music:// |
| 快捷指令 | shortcuts:// |
| 創建捷徑 | shortcuts://create-shortcut |
| 打開指定捷徑 | shortcuts://open-shortcut?name=[name] |
| 錢包 | shoebox:// |
| 鬧鐘 | Clock-alarm:// |
| 秒表 | Clock-stopwatch:// |
| 倒計時 | Clock-timer:// |
百度
| 功能? | URL |
| 百度地圖 | baidumap:// |
| 手機百度 | BaiduSSO:// |
| 百度音樂 | baidumusic:// |
| 百度視頻 | bdviphapp:// |
| 百度糯米 | bainuo:// |
| 百度導航 | bdNavi:// |
| 百度貼吧 | com.baidu.tieba:// |
| 百度輸入法 | BaiduIMShop:// |
| 百度云 | baiduyun:// |
騰訊
| 功能? | URL |
| mqq:// | |
| QQ音樂 | qqmusic:// |
| QQ安全中心 | qmtoken:// |
| 騰訊手機管家 | mqqsecure:// |
| QQ瀏覽器 | mttbrowser:// |
| 騰訊企業郵箱 | qqbizmailDistribute2:// |
| 騰訊視頻 | tenvideo:// |
| 騰訊新聞 | qqnews:// |
| 騰訊微云 | weiyun:// |
| 騰訊地圖 | sosomap:// |
網易
| 功能? | URL |
| 有道詞典 | yddictproapp:// |
| 網易公開課 | ntesopen:// |
| 網易郵箱 | neteasemail:// |
| 網易新聞 | newsapp:// |
| 網易云音樂 | orpheuswidget:// |
| 網易云播放已下載歌曲 | orpheuswidget://download |
| 網易云聽歌識曲 | orpheuswidget://recognize |
銀行
| 功能? | URL |
| 中國銀行 | BOCMBCIphone:// |
| 工商銀行 | com.icbc.iphoneclient:// |
| 農業銀行 | bankabc:// |
| 建設銀行 | wx2654d9155d70a468:// |
| 郵政銀行 | psbcmbank:// |
| 交通銀行 | wx862767be0919d45a:// |
| 招商銀行 | cmbmobilebank:// |
| 民生銀行 | com.cmbc.cn.iphone:// |
| 中信銀行 | citic:// |
| 浦發銀行 | wx1cb534bb13ba3dbd:// |
| 興業銀行 | cibmb:// |
| 招商銀行 | cmbmobilebank:// |
| 廣發銀行 | wb801126555:// |
| 光大銀行 | wxf505f9da589b9506:// |
| 華夏銀行 | com.hx.hxbank:// |
| 渤海銀行 | wxcc0b1c78c5bebdb5:// |
| 天津銀行 | wx1683cc7279171014:// |
| 恒豐銀行 | egbank:// |
| 浙商銀行 | wx105bde8d0d9f2372:// |
| 平安銀行 | paebqw:// |
| 江蘇銀行 | jsbsjyh:// |
| 北京銀行 | wxb57101c34cb7773e:// |
| 上海銀行 | bankofshanghai:// |
| 河北銀行 | hebbank:// |
| 青島銀行 | wxe63b95c397856088:// |
| 齊魯銀行 | wx66b04eb340cefc57:// |
| 日照銀行 | sccba810:// |
| 萊商銀行 | sccba803:// |
| 濰坊銀行 | wx4df61036a188951c:// |
| 濟寧銀行 | wx46071b807d2f473c:// |
| 東營銀行 | wb4216759672:// |
| 煙臺銀行 | sccba816:// |
| 威海銀行 | wx14cd9621b76ffa2f:// |
| 棗莊銀行 | sccba808:// |
| 泰安銀行 | wb3819898473:// |
| 杭州銀行 | com.hzbank.hzbank.per:// |
社交
| 功能? | URL |
| 知乎 | zhihu:// |
| 新浪微博 | sinaweibo:// |
| 騰訊微博 | TencentWeibo:// |
| 陌陌 | momochat:// |
| 百度貼吧 | com.baidu.tieba:// |
| 釘釘 | dingtalk:// |
購物
| 功能? | URL |
| 淘寶 | taobao:// |
| 京東 | openApp.jdMobile:// |
| 蘇寧易購 | suning:// |
| 美團 | imeituan:// |
| 1號店 | yhd:// |
| 唯品會 | vipshop:// |
| 大眾點評 | dianping:// |
| 天貓 | tmall:// |
音頻
| 功能? | URL |
| 抖音 | douyin:// |
| 微視 | weishiiosscheme:// |
| 微拍 | wpweipai:// |
| 優酷 | youku:// |
| 騰訊視頻 | tenvideo:// |
| 愛奇藝 | iqiyi:// |
| 百度視頻 | bdviphapp:// |
| 土豆視頻 | tudou:// |
| 搜狐視頻 | sohuvideo:// |
| 嗶哩嗶哩 | bilibili:// |
| 56視頻 | com.56Video:// |
| 暴風影音 | com.baofeng.play:// |
| 蝦米音樂 | xiami:// |
| 酷我音樂 | com.kuwo.kwmusic.kwmusicForKwsing:// |
| 酷狗音樂 | kugouURL:// |
| 天天動聽 | ttpod:// |
| QQ音樂 | qqmusic:// |
| 網易云音樂 | orpheuswidget:// |
工具
| 功能? | URL |
| Chrome | googlechrome:// |
| 迅雷 | thunder:// |
| 12306 | cn.12306:// |
| 高德地圖 | iosamap:// |
| 百度地圖 | baidumap:// |
| 金山詞霸 | com.kingsoft.powerword.6:// |
| 印象筆記 | evernote:// |
| 搜狗輸入法 | com.sogou.sogouinput:// |
| WPS Office | KingsoftOfficeApp:// |
| OfficeSuite | mobisystemsofficesuite:// |
| PDF Expert 5 | pdfexpert5presence:// |
| 掃描全能王 | camscanner:// |
其他
| 功能? | URL |
| 掌閱iReader | iReader:// |
| 藝龍旅行 | elongIPhone:// |
| 攜程 | CtripWireless:// |
| 58同城 | wbmain:// |
| Line | line:// |
| 1Password | onepassword:// |
| Clear | clearapp:// |
| Calendars 5 | calendars:// |
| GoodReader 4 | com.goodreader.sendtogr:// |
| Documents 5 | rdocs:// |
| nPlayer | nplayer-http:// |
| GPlayer | gplayer:// |
| AVPlayer HD | AVPlayerHD:// |
| AVPlayer | AVPlayer:// |
| Ace Player | aceplayer:// |
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/290915.html
標籤:其他
