Hur*_*rkS 1 objective-c uiwebview nsstring base-url ios
我目前正在创建一个UIWebView,我在其中加载从服务器服务获取的NSString.它只是一个简单的HTML字符串,然后我将它加载到UIWebView中,如下所示:
urlAddress = [[NSURL alloc] initWithString:URLString];
//try removing cache so new stylesheet shows everytime- not sure if this is working yet
[[NSURLCache sharedURLCache] removeAllCachedResponses];
[InfoWebview loadHTMLString:returnedHtmlString baseURL:urlAddress];
Run Code Online (Sandbox Code Playgroud)
然后由于某种原因图像没有显示,样式表不起作用.
例如,我的baseURL看起来像这样
https://myserveraddress/
Run Code Online (Sandbox Code Playgroud)
然后CSS的代码看起来像这样
<link rel="stylesheet" type="text/css" href="Data/iPhone/my.css">
Run Code Online (Sandbox Code Playgroud)
我的问题是这个如何将baseURL前缀加到那个href上?如果loadHTMLString加载到WebView上,它会请求css吗?或者不同的东西
如何将infoWebView源输出到NSString?看看baseURL是否在这些href链接上加上前缀?或者它现在的剂量是这样吗?
任何帮助将不胜感激.
baseURL工作怎么样?
以下是AFNetworking文档中的一些有用示例:
NSURL *baseURL = [NSURL URLWithString:@"http://example.com/v1/"];
[NSURL URLWithString:@"foo" relativeToURL:baseURL]; // http://example.com/v1/foo
[NSURL URLWithString:@"foo?bar=baz" relativeToURL:baseURL]; // http://example.com/v1/foo?bar=baz
[NSURL URLWithString:@"/foo" relativeToURL:baseURL]; // http://example.com/foo
[NSURL URLWithString:@"foo/" relativeToURL:baseURL]; // http://example.com/v1/foo
[NSURL URLWithString:@"/foo/" relativeToURL:baseURL]; // http://example.com/foo/
[NSURL URLWithString:@"http://example2.com/" relativeToURL:baseURL]; // http://example2.com/
Run Code Online (Sandbox Code Playgroud)
基本上,HTML中的任何文件都将被假定在基本URL中指定的位置.如果HTML指定以...开头的文件/,则域名将保持不变,但将忽略基本URL的路径.如果HTML指定以...开头的文件http(s)://,则将忽略整个基本URL.
在您的示例中,URL将解析为https://myserveraddress/Data/iPhone/my.css.
如何将
infoWebView源输出到NSString?
一个简单的解决方案是
NSString *html = [InfoWebview stringByEvaluatingJavaScriptFromString:
@"document.body.innerHTML"];
Run Code Online (Sandbox Code Playgroud)
有关此主题的更多信息和讨论,请参见Stack Overflow.
| 归档时间: |
|
| 查看次数: |
3755 次 |
| 最近记录: |