【发布时间】:2013-10-06 20:47:01
【问题描述】:
在越狱的 iOS 设备上,一个应用程序是否可以调用另一个应用程序的方法(实例方法,而不是静态方法)?另一种表述方式:如何获取应用实例(假设应用正在运行)以便调用其中一个方法?
背景:我正在尝试从 iPodUI 私有框架中的挂钩方法调用音乐播放器应用程序中的函数(有关详细信息,请参阅 this post)。
这个问题已经被问到Android,但是我没有找到越狱iOS的任何东西。如果那是因为我问错了问题并且有不同的方法可以采用,我愿意接受。
【问题讨论】:
-
射击,在输入所有这些后,我发现这个问题似乎有一个可能的答案:stackoverflow.com/questions/18224150/…
-
除非我误解了您的问题,否则我认为其他答案(关于
CPDistributedMessagingCenter)不会对您有所帮助。如果您知道其他应用程序(例如音乐播放器)已经编码为侦听特定通知/消息,那将很有用。如果您只想在另一个应用程序中调用任意方法,而不是被其他进程调用,那么我认为您需要 MobileSubstrate 挂钩。 -
谢谢内特。但是我不应该能够连接到音乐播放器应用程序并添加我自己的听众吗?还是我让这变得比应该的更复杂?
-
如果你的意思是结合使用
CPDistributedMessagingCenter的技术和 hooking,这样音乐播放器就有了新的服务器/监听器......当然,你可以这样做。我想问题是您是否需要将参数传递给此方法。如果您不这样做,那么CPDistributedMessagingCenter就没有必要了,您可以使用多种通知机制中的任何一种。 -
我不需要将参数传递给方法(实际上音乐播放器中的最终方法需要参数,但只有音乐播放器会知道这些是什么——很可能我会使用包装函数),所以我有兴趣了解这些可能性。