【发布时间】:2017-02-09 21:19:27
【问题描述】:
在我的应用程序中,我希望在我的 通知 操作被点击时运行 URL。问题是,当我运行 app 时,它会将我置于前台,但不会运行 URL(我在 notification 操作中添加了 .foreground)。这是我的代码:
extension AppDelegate: UNUserNotificationCenterDelegate {
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
if response.actionIdentifier == "call" {
if let urled = URL(string: "tel://1234567891") {
UIApplication.shared.open(urled, options: [:])
}
}
}
}
任何人的帮助都会很棒:) 感谢您的任何回答!
【问题讨论】:
-
变量
number在哪里设置或访问?我在任何地方都没有看到任何对它的引用。 -
@creeperspeak 变量
number设置在函数的正上方,我只是不想分享任何电话号码 -
好的,您确认
if let urled正在通过吗?您可以尝试调用canOpenUrl以查看该网址是否为有效格式。您是否尝试过打印"tel://\(number)"以查看它是否正确?如果number是可选的,您也需要先将其解包。可能有很多事情,但打印语句和断点可以为您解决问题。 -
@creeperspeak 通常我没有一个名为
number的变量,因为这个应用程序只是一个测试应用程序,通常我在那里有一个典型的字符串。我已经多次使用这个 url 进行了测试,它可以工作我只是不知道如何在点击通知操作时让它工作。 -
试试
canOpenUrl只是为了确定,然后在if response...处设置一个断点,然后逐行执行代码,看看会发生什么。
标签: ios swift url unusernotificationcenter usernotifications