如何只加载请求的UIWebView网址的特定部分?

时间:2012-12-05 04:20:59

标签: iphone objective-c ios ipad uiwebview

我正在为本地商家创建一个应用程序,但他们让我感到痛苦,因为他们不会也不会创建iPhone友好的网页。他们要求我只加载网页的特定部分。

是否有通过指定用户可以导航的网页唯一允许的坐标来执行此操作?他们希望我只显示几个html表格,并希望其桌面网页的其余部分包含链接等,以供用户查看。他们所要求的东西对我来说似乎有点“ha”,但我感谢你提供的任何帮助。

3 个答案:

答案 0 :(得分:2)

-(void)viewDidAppear:(BOOL)animated
{

   NSString *string = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://stackoverflow.com/questions/13716234/how-to-load-only-a-specific-section-of-a-requested-uiwebview-url"] encoding:NSASCIIStringEncoding error:nil];

   NSLog(@"CNN String is %@",string);


   [self.wv loadHTMLString:string baseURL:nil];

   [self.wv setDelegate:self];
}

-(void)webViewDidFinishLoad:(UIWebView *)webView
{

   NSString *testString = [self.wv stringByEvaluatingJavaScriptFromString:@"document.getElementById(\"nav-tags\").innerHTML;"];

   NSLog(@"Test String is %@",testString);
}

如果您输入此代码,您将看到“标签”作为输出。使用正确的id在你的身上做同样的事情。

答案 1 :(得分:0)

我个人会在php中创建应用程序部分。因此,给定页面可能会进行多次RESTful ajax调用,以将内容加载到单独的JavaScript视图控制器中。

答案 2 :(得分:0)

您可以使用下载整个网页并使用一些技巧组合,例如正则表达式等来获取您想要的网页部分。

如果html页面使用css并将部分创建为带有id的div,那将是最简单的。这将使你的工作变得轻松。

但是,这不容易维护,因为一旦网页更改,您的代码可能会中断。在firefox中使用firebug或其他插件,并确定要显示的部分,然后找出解决方案。您还可以使用javascript获取dom元素并在UIWebview中显示它们。