如何在Swift中的AppDelegate(整个应用程序)中检测到设备震动?
我在视图控制器中找到了描述如何操作的答案,但希望在我的应用程序中这样做。
答案 0 :(得分:14)
如果您想全局检测摇动,UIWindow会实现可以接收摇动动作事件的UIResponder。您可以将以下代码段添加到AppDelegate
extension UIWindow {
open override func motionEnded(_ motion: UIEventSubtype, with event: UIEvent?) {
if motion == .motionShake {
print("Device shaken")
}
}
}
答案 1 :(得分:7)
在<!-- Google Analytics -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-XXXXX-Y', 'auto');
</script>
<!-- End Google Analytics -->
中添加以下代码段:
AppDelegate
Swift 3.0版本:
override func motionBegan(motion: UIEventSubtype, withEvent event: UIEvent?) {
if motion == .MotionShake {
print("Device shaken")
}
}