2012-03-09 10 views
1

私は過去数時間にわたってSNRLastFMEngineに取り組んでいて、iOSをフレンドリーにしていましたが、停止しました。私の問題は、Mac OS用のココアアプリケーションでのみ使用できる機能を使用するように見える単一の機能にあります。ココアをココアタッチに変換する -

機能は以下である:kCustomURLSchemeである

- (void)_registerCustomURLSchemeHandler 
{ 
    // Register for Apple Events 
    NSAppleEventManager *em = [NSAppleEventManager sharedAppleEventManager]; 
    [em setEventHandler:self andSelector:@selector(getURL:withReplyEvent:) forEventClass:kInternetEventClass andEventID:kAEGetURL]; 
    // Set Sonora as the default handler 
    NSString *bundleID = [[NSBundle mainBundle] bundleIdentifier]; 
    LSSetDefaultHandlerForURLScheme((CFStringRef)kCustomURLScheme, (CFStringRef)bundleID); 
} 

その関数によって処理されNSString

予め定義された:私が処理するNSNotificationオブザーバーを追加する方法について考え- (void)getURL:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent

を(イベントクラスやイベントIDは認識されませんが、私はLSSetDefaultHandlerForURLSchemeのために何をすべきか分かりません)。私はMac OSアプリケーションに関する経験は一切なく、私はもっと大きな画像を見逃していると確信しています。私は両方の言語の知識を持っている人からの助けや指導にとても感謝しています。

答えて

3

iOSでは、実行時に動的にシステムにURLスキームを登録することはできません。

iOSには、あなたのアプリがCFBundleURLTypesプロパティを持つInfo.plistファイルにURLスキームを表示できることを伝えます。 (これは、ファイルのXcode表示に「URLタイプ」として表示されることがあります)。

これは、サポートされているスキームの一覧が、アプリケーションの出荷時に事前に宣言されており、新しいバージョンのアプリケーションを提出しない限り変更できないことを意味します。 Info.plistファイルを変更しようとすると、ファイルの署名が破られ、iOSがファイルの実行を拒否するため、動作しません。

関連する問題