Ios 在本地通知时使iPhone振动

Ios 在本地通知时使iPhone振动,ios,objective-c,swift,xamarin,apple-push-notifications,Ios,Objective C,Swift,Xamarin,Apple Push Notifications,我目前正在开发一款具有VoIP功能的应用程序。当一个新电话进来时,我会发出一个带有自定义声音的通知。 如果手机处于“振动”状态,则默认情况下会振动一次。然而,我想让手机在整个定制声音(30秒)中振动。 是否有“内置”方式?或者,当我收到VoIP推送时,我是否必须从AppDelegate主动触发振动?如果从那里开始,我是否可以面对AppStore认证问题?(例如,Facebook Messenger和微信提供了这种行为,因此必须有一种方法:)) 提前谢谢 Rafael有两个看似相似的函数采用参数k

我目前正在开发一款具有VoIP功能的应用程序。当一个新电话进来时,我会发出一个带有自定义声音的通知。 如果手机处于“振动”状态,则默认情况下会振动一次。然而,我想让手机在整个定制声音(30秒)中振动。 是否有“内置”方式?或者,当我收到VoIP推送时,我是否必须从AppDelegate主动触发振动?如果从那里开始,我是否可以面对AppStore认证问题?(例如,Facebook Messenger和微信提供了这种行为,因此必须有一种方法:))

提前谢谢
Rafael

有两个看似相似的函数采用参数kSystemSoundID_振动:

1) AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);
2) AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
这两种功能都会使iPhone震动。但是,当您在不支持振动的设备上使用第一个功能时,它会发出嘟嘟声。另一方面,第二个函数在不受支持的设备上不起任何作用。因此,如果你打算连续振动设备,作为一种警告,常识说,使用功能2。 首先,在构建阶段将AudioToolbox框架AudioToolbox.framework添加到目标中

然后,导入此头文件:

#import <AudioToolbox/AudioServices.h>
ViewController.m

timer = [NSTimer scheduledTimerWithTimeInterval:YOURINTERVAL target:self selector:@selector(YOURSELECTOR) userInfo:nil repeats:YES];

-(void)YOURSELECTOR{
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
}

您可以通过调用
[timer invalidate]

来停止计时器(当用户接听电话时)。有两个看似相似的函数采用参数kSystemSoundID\u振动:

1) AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);
2) AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
这两种功能都会使iPhone震动。但是,当您在不支持振动的设备上使用第一个功能时,它会发出嘟嘟声。另一方面,第二个函数在不受支持的设备上不起任何作用。因此,如果你打算连续振动设备,作为一种警告,常识说,使用功能2。 首先,在构建阶段将AudioToolbox框架AudioToolbox.framework添加到目标中

然后,导入此头文件:

#import <AudioToolbox/AudioServices.h>
ViewController.m

timer = [NSTimer scheduledTimerWithTimeInterval:YOURINTERVAL target:self selector:@selector(YOURSELECTOR) userInfo:nil repeats:YES];

-(void)YOURSELECTOR{
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
}
您可以通过调用
[timer invalidate]