IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> iOS Widget 小组件打开其他APP?仿TopWidget快捷启动? 附常用URL schemes -> 正文阅读

[移动开发]iOS Widget 小组件打开其他APP?仿TopWidget快捷启动? 附常用URL schemes

开发一个小组件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,经测试,目前只有打开微信和微信扫一扫可以使用

?
?
系统

功能? 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
QQ 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://
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-07-28 07:56:17  更:2021-07-28 07:56:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/6 19:32:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码