You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

iOS 16 Widget Kit点击Widget唤起URL Scheme功能失效问题求助

解决Widget点击唤起计算器App的问题

我来帮你排查下这个问题,你的思路方向是对的,但可能漏了两个关键细节,导致点击Widget没反应:

1. 用错了计算器的URL Scheme

iOS自带计算器的正确URL Scheme是calshow://,而不是你用的calc://——这个是很多开发者容易记错的点!先把Widget里的widgetURL改成正确的Scheme:

Gauge(value: 50, in: 0.0...100.0) {
} currentValueLabel: {
    Text("Open App")
}
.gaugeStyle(.accessoryCircularCapacity)
.widgetURL(URL(string: "calshow://")!) // 这里改成calshow://

2. 必须在Info.plist中声明允许查询的Scheme

从iOS 9开始,系统要求App必须显式声明要唤起的第三方App的URL Scheme,否则会被拦截。你需要在项目的Info.plist里添加LSApplicationQueriesSchemes数组,把calshow加进去:

如果用源码编辑Info.plist,添加这段代码:

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>calshow</string>
</array>

如果用可视化编辑:

  • 右键点击Info.plist → Open As → Source Code
  • 插入上述代码,或者在可视化界面点击+号,添加LSApplicationQueriesSchemes(类型选Array),然后在数组里添加一个String项,值为calshow

额外注意事项

  • 测试最好用真机:虽然模拟器也有计算器,但有时候URL Scheme的唤起在模拟器上可能有兼容性问题,真机测试更准确
  • 如果是唤起第三方App,一定要确认对方公开的URL Scheme是什么,并且同样要在LSApplicationQueriesSchemes里声明对应的Scheme

按照这两步修改后,点击Widget应该就能正常唤起计算器了!

内容的提问来源于stack exchange,提问作者user17979727

火山引擎 最新活动