0

iPhoneアプリを作成していて、コンテンツが埋め込まれたWebビューを作成しようとしています。また、Webビューがアプリケーションプロトコルからファイルを要求したときにファイルが返されるようにしようとしています。たとえば、はアプリケーションバンドル内protocol://app/style.cssのコンテンツを返しますが、アプリケーションドキュメントディレクトリからファイルにアクセスします。style.cssprotocol://documents/folder/image.pngfolder/image.png

Spotify Macアプリケーションはアプリでそれを行い、開発者が//app/style.css上記の方法と同様のアドレスでSpotifyスタイルにアクセスできるようにします。アプリ内からメソッドを呼び出すとスタイリングファイルが返され、アプリ外から呼び出されるとアプリケーションが起動するだけです。

Webビューの場所をに設定して、メインアプリケーションバンドルのファイルをWebビューに含めるにはどうすればよいcustomProtocol://app/style.cssですか?

4

1 に答える 1

0

JS置換関数を使用してprotocol://、実際のパス文字列に置き換えることができます

webView.delegate = self; 次に、を実際のパスにwebViewDidFinishLoad置き換えますprotocol://

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    //Get the real path
    NSString *exactPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Document/CorrectPath/"];

    //In head replace protocol with real path
    NSString *js = [NSString stringWithFormat:@"document.head.innerHTML = document.head.innerHTML.replace('protocol://','%@')", exactPath];

    //Execute javascript replace on head
    [webView stringByEvaluatingJavaScriptFromString:js];
}
于 2012-06-14T20:08:23.180 に答える