遇到这样一个需求:应用无论处于哪个view controller,摇动手机,都能够出发某一方法。

能够想到的思路就是用苹果封装好的“MotionEvent”,但是如果简单的把一下代码加到某一view controller中,那么只有在该view controller展示在前端时,摇动手机才会出发方法。

- (BOOL)canBecomeFirstResponder {//默认是NO,所以得重写此方法,设成YES

return YES;

}

然后实现下列方法://很像TouchEvent事件

- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event

{

}

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event

{

NSLog(@"shake");

}

- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event

{

}

解决方法:用Category扩展UIWindow,代码如下:

UIWindow+.h

#import

#define UIEventSubtypeMotionShakeNotification @"UIEventSubtypeMotionShakeNotification"

@interface UIWindow (Motion)

// @override

- (BOOL)canBecomeFirstResponder;

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event;

@end

UIWindow+.m

#import "UIWindow+.h"

@implementation UIWindow (Motion)

- (BOOL)canBecomeFirstResponder {//默认是NO,所以得重写此方法,设成YES

return YES;

}

然后实现下列方法://很像TouchEvent事件

- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event

{

}

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event

{

NSLog(@"shake");

}

- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event

{

}

@end

播放音效:

SystemSoundID soundID;

NSString *path = [[NSBundle mainBundle] pathForResource:@"glass" ofType:@"wav"];

AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path], &soundID);

AudioServicesPlaySystemSound (soundID);

微信摇一摇插件ios_iOS开发——全局响应MotionEvent(微信摇一摇)相关推荐

  1. 微信小程序地图插件系列(二):微信小程序使用百度地图(不定期补充知识点)

    前言 当我们在使用一些地图相关软件的情况下,他会显示选择那种.一般都有高德地图,百度地图等.那么我们在微信小程序中也想使用这种功能需要怎么办呢? 本文地址链接 微信小程序-百度地图SDK官方文档 微信 ...

  2. 微信商城二次开发php,php版微信小店API二次开发及使用示例-微信开发

    本文实例讲述了php版微信小店API二次开发及使用方法.分享给大家供大家参考,具体如下: 1. weixiaodian.php页面: class wXd { public $AppID = " ...

  3. 微信开放JS-SDK,助力网页开发[转自微信官方]

    为什么80%的码农都做不了架构师?>>>    微信公众平台今日面向开发者开放微信内网页开发工具包(微信JS-SDK). 通过微信JS-SDK提供的11类接口集,开发者不仅能够在网页 ...

  4. (保姆教程及高级玩法及坑)微信同声传译插件-语音识别

    目录 一.背景 二.效果 ​编辑 三.保姆级教程 3.1 小程序后台添加插件:微信同声传译 3.1.1 设置 -> 第三方设置 -> 添加插件 3.1.2 搜索插件 3.1.3 成功添加后 ...

  5. 微信小程序购物商城系统开发系列-工具篇

    微信小程序购物商城系统开发系列-工具篇 微信小程序开放公测以来,一夜之间在各种技术社区中就火起来啦.对于它 估计大家都不陌生了,对于它未来的价值就不再赘述,简单一句话:可以把小程序简单理解为一个新的操 ...

  6. 微信小程序开发系列七:微信小程序的页面跳转

    微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 微信小程序开发系列四:微信小程序 ...

  7. 微信小程序开发系列六:微信框架API的调用

    微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 微信小程序开发系列四:微信小程序 ...

  8. 微信小程序开发系列五:微信小程序中如何响应用户输入事件

    微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 微信小程序开发系列四:微信小程序 ...

  9. 微信小程序开发系列四:微信小程序之控制器的初始化逻辑

    微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 这个教程的前两篇文章,介绍了如何 ...

  10. 微信订水水站小程序开发有哪些作用

    微信订水水站小程序开发有哪些作用 微信订水送水小程序是通过小程序进行在线订水,改变过去人们通过电话订水的复杂的过程,开发微信订水小程序不仅可以方便用户订购水,纯净水企业通过还可以互联网改善商店管理. ...

最新文章

  1. 德国版“非升即走”引发学界震荡!“临时工”干12年也难获教职,网友:全世界都在卷...
  2. tracepro应用实例详解_建筑安装工程造价,高清PPT图文详解,小白也能学会的简单步骤...
  3. java之集合框架一Collection接口
  4. 内存管理中的几种地址类型
  5. 基于simulink的QAM-WIMAX的系统仿真
  6. python字典新的定义方式
  7. SCART接口保护 ESD二极管选型
  8. 3.odoo13之跟着官网做项目/实例(模型关联,模型类模型表的关联)
  9. 战网服务器修改 win8,如何修改战网客户端?修改战网客户端的方法
  10. python socket recvfrom_Python socket学习笔记(一)
  11. postgresql两个列模糊比较_数据分析之SQL优化系列(二)---PostgreSQL 的索引
  12. 字符串乘一个数_【思维拓展】三位数乘两位数,构造最大积和最小积
  13. 【数字逻辑设计】组合电路
  14. 一般纳米材料是指尺度为_纳米是什么米?什么是纳米材料?(1)
  15. Google帝国研究——Google的产业构成
  16. 手机就能申请摇号 杭州市小客车摇号功能全新上线
  17. c语言int转换为bytes,__c语言__整型、实型的存储(十进制转二进制)
  18. 网络协议 -- ARP和RARP协议
  19. js版梅森旋转生成随机数
  20. docker环境安装jira(Linux系统)

热门文章

  1. NVIDIA SPADE 风景合成
  2. 怎样用c语言写高速超速罚款标准,C语言实现:高速公路超速处罚
  3. html5 元宵节送祝福,[元宵节祝福语简短5]元宵节祝福语简短
  4. Android RxJava应用:优雅实现网络请求嵌套回调
  5. 《用户体验要素——以用户为中心的产品设计》读书笔记
  6. 纯前端项目文件部署到远程服务器
  7. 多多情报通:拼多多推广账户金额可以通用吗?里面钱可以提出来吗?
  8. Word中如何制作红头文件?学会技巧提高工作效率
  9. 编程训练4-统计单词平均长度
  10. 第三十二章 三更雪压飞狐城(三之全)