如何使用xcode使用计划url来启动Siri?

我需要通过openUrl:方法启动Siri (在越狱设备上)。

例如

 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"Siri://"]]; 

这是不可能的。 另外,Xcode是一个IDE – 一个代码编辑器。 这不是一种语言或平台。

Siri似乎没有任何URL计划 ,所以我不认为你可以这样打开它。 Siri也不是一个普通的App ,它是SpringBoard使用的一个库。

无论如何,如果你想另一种方式来打开它,我会尝试看看rpetrich的libActivator源代码。

如果你看这里,你会看到类似于你所需要的东西 。 虚拟助手是“Siri”。

 - (BOOL)activateVirtualAssistant{ if ([%c(SBAssistantController) preferenceEnabled]) { if ([%c(SBAssistantController) shouldEnterAssistant]) { SBAssistantController *assistant = (SBAssistantController *)[%c(SBAssistantController) sharedInstance]; if (assistant.assistantVisible) [assistant dismissAssistant]; else { [(SpringBoard *)UIApp activateAssistantWithOptions:nil withCompletion:nil]; return YES; } } } return NO; } 

在这里,代码调用activateAssistantWithOptions:withCompletion:这是SpringBoard类本身的一个方法。

这种技术当然是基于MobileSubstrate 挂钩的

免责声明:我没有testing过这个代码。 只是看着它,但它似乎是你所需要的。


更新:

这不是使用URLscheme,但我想出了一个不同的方式来启动Siri, 在这个答案中描述 。

Siri没有URL模式,目前还没有可用的集成 – 可能会有iOS 7的集成,但是在这个阶段没有办法执行这个function。