如何将选项(到didFinishLaunchingWithOptions)传递给我从我的调整激活的应用程序?

时间:2012-06-01 12:56:43

标签: iphone ios jailbreak

我有一个加载到SpringBoard的调整并激活从外部源指定的应用程序。

如何将任何参数传递给我激活的应用程序? SBUIController :: activateApplicationFromSwitcher()似乎没有任何规定,以及SBApplication。

背景:我需要将一个file:// url传递给移动版Safari。我有文件://安装了移动safari tweak,但它没有注册带有移动safari的file:// scheme,所以openURL不起作用。

另一个选择是通过教它如何响应file:// urls来扩展移动版Safari。似乎无法找到我需要的东西。

2 个答案:

答案 0 :(得分:3)

可以这样做。首先,您必须编辑MobileSafari的Info.plist,以便将file://添加到url方案中。其次,您必须覆盖应用程序:openURL:使用mobilesubstrate来处理此地址的方法。这将需要一些逆向工程来弄清楚如何正确地做,但是可以做到。

答案 1 :(得分:0)

Cydia的工作方式对你来说很有意义。

Cydia本身的可执行文件MobileCydia AFAIK,SpringBoard启动Cydia,实际上是一个bash文件:

#!/bin/bash
C=/${0}
C=${C%/*}
declare -a flags
[[ :${DYLD_INSERT_LIBRARIES}: == */MobileSubstrate.dylib: ]] && flags[${#flags[@]}]=--  substrate#!/bin/bash
exec "${C:-.}"/MobileCydia "${flags[@]}" -- "$@" 2>>/tmp/cydia.log

实际启动Cydia的代码是exec命令。 Cydia所做的是解析那里的论点。这允许Cydia挂钩所有调整所需的MobileSubstrate。

希望这有帮助!