在开发iphone安全架构时,我开始知道我可以在iphone中运行其他应用程序的应用程序。参考以下网址http://iosdevelopertips.com/cocoa/launching-other-apps-within-an-iphone-application.html
例如,我可以在具有以下超链接的网站中放置链接 SKYPE:// 将导致skype运行并调用特定号码。现在我几乎没有担心。答案 0 :(得分:5)
这是 iPhone OS 的功能。应用程序将自己注册为特定协议的URL处理程序。在这种情况下,Skype应用程序已注册处理skype:// URL协议。
PS。 Mac OS X中提供了几乎相同的功能,还可以将URL发送到已经运行的应用程序。
答案 1 :(得分:2)
可以使用system
或popen
等来生成shell。当然,由于应用程序是沙盒,fork()
被拒绝,因此无法从任何AppStore应用程序访问shell
然而,iPhoneOS背景中有很多东西在运行。其中一个是 SpringBoard.app ,这是你在启动时看到的“主屏幕”。实际上SpringBoard.app负责的不仅仅是显示主屏幕,其中一个是接收和发送URL请求。
@Alan描述了注册过程。但在幕后,当应用程序发出URL请求时,将发生以下情况:
-[UIKit openURL:]
将开放请求委托给其他人。-[SpringBoard applicationOpenURL:]
。tel://*5005*78283#
之类的内容将被拒绝)。如果有效,将执行操作(拨打号码,订阅日历,打开应用程序等)。答案 2 :(得分:0)