SwiftUI:如何使 phone 振动?
SwiftUI: How to make phone vibrate?
所以我通过本教程了解了如何让 phone 提供触觉反馈。
https://swifttom.com/2020/03/11/haptic-feedback-in-a-swiftui-button/
然而,我想弄清楚的是如何让 iPhone 真正振动,就像接收到 phone 呼叫或定时器(从默认时钟应用程序)在 phone 静音时关闭。我知道这似乎可以在 Google 上轻松找到答案,但老实说我找不到解决方案。如果有人能提供帮助,将不胜感激。
import SwiftUI
struct ContentView: View {
let generator = UINotificationFeedbackGenerator()
var body: some View {
VStack{
Button("Press") {
generator.notificationOccurred(.error) //I want vibration, not haptic feedback
}
}
}
}
只需调用AudioServicesPlaySystemSound(kSystemSoundID_Vibrate)
。您可能需要导入 AudioToolbox 框架。
我想这应该有点帮助。试试看! Lmk 如果它有效!
源代码
import SwiftUI
import AudioToolbox
struct ContentView: View {
var body: some View {
VStack{
Button("Press"){
AudioServicesPlayAlertSoundWithCompletion(SystemSoundID(kSystemSoundID_Vibrate)) { }
}
}
}
}
1. 首先你需要导入 AudioToolbox
我在点击按钮时使用振动功能。
@IBAction func startVibration(_ sender: Any) {
for _ in 1...5 {
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate)
sleep(1)
} }
它工作正常。
2. 让它成为 UIDevice 的扩展?
extension UIDevice {
static func vibrate() {
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate)
} }
现在您可以根据需要调用 UIDevice.vibrate()。
所以我通过本教程了解了如何让 phone 提供触觉反馈。 https://swifttom.com/2020/03/11/haptic-feedback-in-a-swiftui-button/
然而,我想弄清楚的是如何让 iPhone 真正振动,就像接收到 phone 呼叫或定时器(从默认时钟应用程序)在 phone 静音时关闭。我知道这似乎可以在 Google 上轻松找到答案,但老实说我找不到解决方案。如果有人能提供帮助,将不胜感激。
import SwiftUI
struct ContentView: View {
let generator = UINotificationFeedbackGenerator()
var body: some View {
VStack{
Button("Press") {
generator.notificationOccurred(.error) //I want vibration, not haptic feedback
}
}
}
}
只需调用AudioServicesPlaySystemSound(kSystemSoundID_Vibrate)
。您可能需要导入 AudioToolbox 框架。
我想这应该有点帮助。试试看! Lmk 如果它有效!
源代码
import SwiftUI
import AudioToolbox
struct ContentView: View {
var body: some View {
VStack{
Button("Press"){
AudioServicesPlayAlertSoundWithCompletion(SystemSoundID(kSystemSoundID_Vibrate)) { }
}
}
}
}
1. 首先你需要导入 AudioToolbox
我在点击按钮时使用振动功能。
@IBAction func startVibration(_ sender: Any) { for _ in 1...5 { AudioServicesPlaySystemSound(kSystemSoundID_Vibrate) sleep(1) } }
它工作正常。
2. 让它成为 UIDevice 的扩展?
extension UIDevice { static func vibrate() { AudioServicesPlaySystemSound(kSystemSoundID_Vibrate) } }
现在您可以根据需要调用 UIDevice.vibrate()。