0

我正在构建一个 iPhone 应用程序,我正在尝试使用嵌入内容的 Web 视图,并且我正在尝试从 Web 视图从应用程序协议请求文件时返回一个文件。例如,protocol://app/style.css将返回style.cssApplication Bundle 中的内容,同时从应用程序文档目录protocol://documents/folder/image.png访问文件。folder/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 回答