我有一个加载到SpringBoard的调整并激活从外部源指定的应用程序。
如何将任何参数传递给我激活的应用程序? SBUIController :: activateApplicationFromSwitcher()似乎没有任何规定,以及SBApplication。
背景:我需要将一个file:// url传递给移动版Safari。我有文件://安装了移动safari tweak,但它没有注册带有移动safari的file:// scheme,所以openURL不起作用。
另一个选择是通过教它如何响应file:// urls来扩展移动版Safari。似乎无法找到我需要的东西。
答案 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。
希望这有帮助!