iOS - display content from an html resource file or remote webpage in a webview

前端 未结 1 1149
星月不相逢
星月不相逢 2021-02-01 23:12

I am an iOS newbie. I want to have a function that loads the content from a local html resource file or a webpage depending on what is specified in a constant. How would I go ab

1条回答
  •  一向
    一向 (楼主)
    2021-02-01 23:35

    You can easily load webpages like this:

    NSURLRequest *request = [NSURLRequest requestWithURL:
       [NSURL URLWithString:@"http://stackoverflow.com"]] ;
    
    [webView loadRequest:request] ;
    

    For local files it depends on the location of the file on your device: For files in your main-bundle (= your project), you can use the same loadRequest function, but build the path differently:

    NSString *localFilePath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"] ;
    NSURLRequest *localRequest = [NSURLRequest requestWithURL:
      [NSURL fileURLWithPath:localFilePath]] ;
    
    [webView loadRequest:localRequest] ;
    

    and if you want to load a html-string in your webView:

    NSString *bundlePath = [[NSBundle mainBundle] bundlePath];
    NSURL *baseURL = [NSURL fileURLWithPath:bundlePath];
    
    NSString *htmlString = [bundlePath pathForResource:@"index" ofType:@"html"] ;
    [webView loadHTMLString:htmlString baseURL:baseURL];
    

    and if your html-file resides in your documents folder of your application (for example a html-file you downloaded):

    NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask ,YES );
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *path = [documentsDirectory stringByAppendingPathComponent:@"index.html"];
    NSURLRequest *documentsRequest = [NSURLRequest requestWithURL:
      [NSURL fileURLWithPath:path]] ;
    
    [webView loadRequest:documentsRequest] ;
    

    0 讨论(0)
提交回复
热议问题