3

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

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

背景:我需要将 file:// url 传递给移动 safari。我已经安装了用于移动 safari 调整的 file://,但是它没有在移动 safari 中注册 file:// 方案,因此 openURL 不起作用。

另一种选择是通过教它如何响应 file:// url 来扩展移动 safari。似乎找不到我需要挂钩的东西。

4

2 回答 2

3

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

于 2012-06-02T20:27:30.457 回答
0

Cydia 的工作方式可能会让您感兴趣。

Cydia 本身的可执行文件MobileCydiaAFAIK,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,这是所有调整都需要的。

希望这可以帮助!

于 2012-06-02T19:50:26.290 回答