0

我在目标 C 和 javascript 之间制作了一个混合应用程序。我的应用程序是这样工作的:

  1. 当我按下第一个按钮时,它将加载 UIWebView
  2. 在这个 UIWebView 中,我可以将 html 保存到 Documents 文件夹中
  3. 当我保存网站时,我创建了一个 JSON 来存储信息,并将这个 JSON 保存到 Documents 文件夹
  4. 当我按下第二个按钮时,它将加载另一个 UIWebView,其中有一个从 JSON 读取信息并将此数据显示在 html 列表中的移动站点
  5. 当我按下一个站点的名称时,它将从 Documents 文件夹加载该站点

前 4 点效果很好,但是当我按下站点标题时,我遇到了麻烦,确实,UIWebView 向我显示了一个页面,其中写着它没有存储在此服务器上的页面。当我使用 Finder 导航到我的应用程序的 Documents 文件夹并双击 html 站点时,它会在 Safari 中显示它。为什么当我用 UIWebView 加载它时不起作用?我将在此处发布屏幕截图以了解我的流程。

在此处输入图像描述

代码:我在这里发布加载html的代码:

viewDidLoad 方法,我调用该方法来加载我的页面

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.webView.delegate = self;
    //[self loadWebsite:@"http://localhost/root/main/index.html"];
    [self loadWebsite:@"http://192.168.2.1/root/main/index.html"];
}

加载网站方法

-(void)loadWebsite:(NSString*)site
{
    NSURL *url = [NSURL URLWithString:site];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [self.webView setScalesPageToFit:YES];
    [self.webView loadRequest:request];
}
4

1 回答 1

0

这似乎是您如何将 html 文件加载到 webview 的问题。您应该在加载 uiwebview 的位置发布代码。

要使用本地文件加载 web 视图,请使用以下代码:

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] 
pathForResource:@"htmlfilename" ofType:@"html" inDirectory:@"Documents"]];
[webview loadRequest:[NSURLRequest requestWithURL:url]];

可以参考这篇文章:Load resources from relative path using local html in uiwebview

于 2013-08-01T15:14:55.557 回答