我正在构建一个iPhone应用程序,我正在尝试使用嵌入内容的Web视图,并且我正在尝试从Web视图从应用程序协议请求文件时返回一个文件。例如,protocol://app/style.css
将返回Application Bundle中style.css
的内容,而protocol://documents/folder/image.png
将从应用程序文档目录中访问文件folder/image.png
。
Spotify Mac应用程序使用他们的应用程序,允许开发人员使用类似于上面//app/style.css
方法的地址访问Spotify样式。当从app中调用该方法时,将返回样式文件,而当在应用程序外部调用时,则只需启动应用程序。
如何将网络视图位置设置为customProtocol://app/style.css
,将主应用程序包中的文件包含到网页视图中?
答案 0 :(得分: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];
}