实体没有定义

时间:2010-10-26 06:14:41

标签: iphone uiwebview

我一直在尝试将网址http://friscotxcoc.weblinkconnect.com/cwt/External/WCPages2/wcevents/eventsstartpage.aspx?oe=true&ce=true加载到网页视图中,但它显示错误“未找到实体”。 该链接在Safari(机器以及模拟器)上正常工作,但在通过webview加载时无法正确加载。有人能指出我该怎么做吗?

#define kEventsCalenderLink  @"http://friscotxcoc.weblinkconnect.com/cwt/External/WCPages2/wcevents/eventsstartpage.aspx?oe=true&ce=true"    
NSURL *eventsURL  = [NSURL URLWithString:kEventsCalenderLink];
eventsWebView.delegate = self;
[eventsWebView loadRequest:[NSURLRequest requestWithURL:eventsURL]];

3 个答案:

答案 0 :(得分:2)

服务器正在将具有Content-Type为“application / xhtml + xml”的页面提供给Safari的Simulator版本。 Safari将页面解释为严格的XML,它没有 实体。

不幸的是,UIWebView在幕后操纵它的HTTP标头,而且似乎无法将其配置为发出一个请求,使您的服务器以“text / html”的形式提供内容

我建议的一种解决方法是使用NSURLConnection检索内容,然后使用loadData:MIMEType:textEncodingName:baseURL:方法将其提供给您的网络视图,确保将“text / html”作为MIME传递类型。

这也可能需要通过webView:shouldStartLoadWithRequest:navigationType:委托方法拦截未来的请求(为了取消它们并以上述方式加载它们以防止出现类似问题)。

或者,如果您可以控制服务器,则可以将其配置为使用适当的内容类型提供HTML。或者转换内容以使用适当的XML实体。

答案 1 :(得分:1)

以这种方式做到:

NSString *kEventsCalenderLink  @"http://friscotxcoc.weblinkconnect.com/cwt/External/WCPages2/wcevents/eventsstartpage.aspx?oe=true&ce=true"    

NSLog(@"%@",kEventsCalenderLink);
eventsWebView.delegate = self;
eventsWebView.userInteractionEnabled = true;
[eventsWebView loadRequest:[[NSURLRequest alloc] initWithURL:[[NSURL alloc] initWithString:kEventsCalenderLink]]];

您只定义了未提及的字符串类型的网址。

答案 2 :(得分:0)

以下是我实施的示例代码。希望它可以帮助您

- (void)loadView 
{
    UIView *vew=[[UIView alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
    self.view=vew;
    //self.title=@"sanjay";
    //self.navigationItem.title=@"afdsfasd";
    self.view.backgroundColor=[UIColor redColor];
        [vew release];


    UIButton *smsbtn=[UIButton buttonWithType:UIButtonTypeRoundedRect];
    smsbtn.frame=CGRectMake(50, 280, 100, 50);

    [smsbtn setTitle:@"SMS APP" forState:UIControlStateNormal];
    [smsbtn setTitleEdgeInsets:UIEdgeInsetsZero];
    [smsbtn addTarget:self action:@selector(loadsms) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:smsbtn];
}

-(void)loadsms
{
    NSString *url = [NSString stringWithFormat:@"http://friscotxcoc.weblinkconnect.com/cwt/External/WCPages2/wcevents/eventsstartpage.aspx?oe=true&ce=true"];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString: url]];

}

这段代码很有用。试试看。我已经为你实现了这个。