2013-09-05 4 views
1

Я создаю приложение, в котором я хочу отобразить локально сохраненную веб-страницу (HTML + CSS + JS). Я пробовал много способов, но страница не отвечает на java-скрипт. Вот часть кода, который я попыталсяКак сделать оболочку для HTML, CSS и Javascript страниц в iOS

TRY: 1

//html 
NSString *actualPageMarkupFilePath = [[NSBundle mainBundle] pathForResource:@"inex" ofType:@"html"]; 
NSData *actualPageMarkupData = [NSData dataWithContentsOfFile:actualPageMarkupFilePath]; 
NSString *actualPageMarkup = [[NSString alloc]initWithData:actualPageMarkupData encoding:NSASCIIStringEncoding]; 

// load css styles 
NSString *cssPath = [[NSBundle mainBundle] pathForResource:@"style" ofType:@"css"]; 
NSData *cssData  = [NSData dataWithContentsOfFile:cssPath]; 
NSString *cssString = [[NSString alloc] initWithData:cssData encoding:NSASCIIStringEncoding]; 

// load js 
NSString *jsPath1 = [[NSBundle mainBundle] pathForResource:@"myzepto" ofType:@"js"]; 
NSData *jsData1  = [NSData dataWithContentsOfFile:jsPath1]; 
NSString *jsString1 = [[NSString alloc] initWithData:jsData1 encoding:NSASCIIStringEncoding]; 

NSString *jsPath2 = [[NSBundle mainBundle] pathForResource:@"zepto.min" ofType:@"js"]; 
NSData *jsData2  = [NSData dataWithContentsOfFile:jsPath2]; 
NSString *jsString2 = [[NSString alloc] initWithData:jsData2 encoding:NSASCIIStringEncoding]; 

// compose full html page 
NSString *pageContent = [NSString stringWithFormat:@"%@%@%@%@", cssString, jsString1, jsString2, actualPageMarkup]; 
[self.HTMLWebView loadHTMLString:pageContent baseURL:[NSURL URLWithString:@""]]; 

TRY: 2

NSString *filePath = 
[[NSBundle mainBundle] pathForResource:@"inex" ofType:@"html"]; 
NSData *htmlData = [NSData dataWithContentsOfFile:filePath]; 

if (htmlData) { 
    NSBundle *bundle = [NSBundle mainBundle]; 
    NSString *path = [bundle bundlePath]; 
    NSString *fullPath = [NSBundle pathForResource:@"inex" 
              ofType:@"html" inDirectory:path]; 
    [_HTMLWebView loadRequest:[NSURLRequest requestWithURL: 
          [NSURL fileURLWithPath:fullPath]]]; 
} 

TRY: 3

NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"inex" ofType:@"html"]; 
NSData *htmlData = [NSData dataWithContentsOfFile:htmlFile]; 
[_HTMLWebView loadData:htmlData MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] resourcePath]]]; 

TRY: 4

NSURL *urlPageFile = [[NSBundle mainBundle] URLForResource:@"inex" withExtension:@"html"]; 
NSURLRequest *webPageRequest = [[NSURLRequest alloc] initWithURL:urlPageFile]; 
[_HTMLWebView loadRequest:webPageRequest]; 
[webPageRequest release]; 

ответ

1

Ваш должен скопировать каталог с HTML, CSS и т.д. проецировать с опциями
«Копировать элементы в папку назначения группы (при необходимости)»
«Создать ссылки папки для любых добавленных папок» enter image description here

И загрузите страницу в webview с помощью этого кода:

NSString* path = [[NSBundle mainBundle] pathForResource:@"index.html" 
               ofType:nil 
              inDirectory:@"MyWebSite"]; 

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:path]]; 
[_webView loadRequest:request]; 
+0

Hi Ilya, You so моя проблема, теперь она работает нормально. Благодаря тонну!!! веселит. :) – Chahal

+0

Hi @ilya это решение дало мне 1000 голосов на моем лице. Большое спасибо.. –

1
UIWebView *theHTML = [[UIWebView alloc] init]; 
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"yourFileName" ofType:@"html"]]]; 
[theHTML loadRequest:urlRequest; 
[self addSubview:theHTML]; 

Создайте webView и загрузите HTML. Скопируйте также файл JS и CSS в папку Project. Проверьте путь в файле html в файле JS и CSS.

+0

Hi q0re, все еще не повезло. :( Невозможно отображать изображения на экране, и я не могу щелкнуть любую кнопку на экране. Я думаю, что .js-файл не отвечает, но, с другой стороны, тот же файл отлично работает для Android – Chahal

+0

Появляется ли страница? Я имею в виду код html, но стиль и js не ..? – q0re

+0

Да, на экране появился код HTML, но так же, как и с другими проверенными методами (другие 4 метода), и все еще не отвечает на java sript. – Chahal