3

SpringBoard に読み込まれ、外部ソースから指定されたアプリをアクティブ化する微調整があります。

アクティブ化したアプリに引数を渡すにはどうすればよいですか? SBUIController::activateApplicationFromSwitcher() には、SBApplication と同様に、それに対する規定がないようです。

背景: file:// url をモバイル サファリに渡す必要があります。モバイル サファリの微調整用に file:// をインストールしましたが、file:// スキームがモバイル サファリに登録されないため、openURL が機能しません。

もう 1 つのオプションは、file:// URL への応答方法を教えることで、モバイル サファリを拡張することです。そのためにフックする必要があるものを見つけることができないようです。

4

2 に答える 2

3

これを行うこと可能です。まず、MobileSafari の Info.plist を編集して、file:// が URL スキームに追加されるようにする必要があります。次に、application:openURL: メソッドを mobilesubstrate でオーバーライドして、このアドレスを処理する必要があります。これには、正しく行う方法を理解するためのリバース エンジニアリングが必要になりますが、それは可能です。

于 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 に答える