0

REST ソースを指しているため、特定のドメインで始まる HTTP URL をアプリで処理する必要があります。ただし、Web サービスは私の管理下にないため、アプリでリンクを開くためのカスタム URL スキームを簡単に導入することはできません。

Cocoa アプリでそのような URL を傍受して処理する方法はありますか?

例:http://static.domain.name/some/random/path

私のアプリは、次を指すすべてのリンクを処理する必要がありますhttp://static.domain.name

答えはNOになるのではないかと心配していますが、何とかすべてが可能です:)。

アップデート


これは、動作させるために使用した Safari 拡張コードです (<> 内のコンテンツはあなたのものに置き換えられます)

var allLinks = document.links;
for (var i=0; i<allLinks.length; i++) {
    var link = allLinks[i];
    if (/.*<match>.*/.test(link.href)) {
        var rewrite = link.href.replace(/<match>/, "<customscheme>://");
        link.href = rewrite;
        console.log("Rewrote: " + rewrite);
    }
}
4

1 に答える 1

1

独自のスキームで URL 全体をエンコードするだけです。myscheme://http%3A//static.domain.name/some/random/path

アプリケーションが URL を処理するときは、最初の部分を切り取ってエスケープ解除します。

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    NSString * urlString = [url description];
    // Remove your scheme
    urlString = [urlString stringByReplacingOccurrencesOfString:@"myscheme://" withString: @""];
    // Unescape
    urlString = [urlString stringByReplacingPercentEscapesUsingEncoding: NSASCIIStringEncoding];
    // Do something with urlString
    return YES;
}

しかし、いいえ。処理を割り当てることはできませんhttp://

于 2010-09-24T19:44:54.773 に答える