2012-06-28 3 views
9

У меня есть приложение iOS для загрузки строки html, которая ссылается на внешний файл css и файл javascript в том же каталоге.iOS loadHtmlString в UIWebView не работает с Javascript

Вот мой HTML-файл:

<html> 
<head> 
    <meta name="viewport" content= user-scalable="no", width="device-width" /> 
    <meta http-equiv="Content-Type" content="text/html"; charset="UTF-8"/> 
    <link rel="stylesheet" type="text/css" href="mystyle.css" /> 
    <script type="text/javascript" src="myjavascript.js"></script> 
</head> 

файл CSS работает отлично, но кажется, что файл JS не загружен. Что может быть причиной?

Кстати, я использую loadHtmlString: метод BaseUrl для загрузки моей строки html.

Благодаря

+1

Обратите внимание на ссылку [this] (http://stackoverflow.com/questions/7012537/sourcing-local-javascript-in-uiwebview-ios?rq=1) и надейтесь на ее полезность, поскольку я этого не пробовал. –

+0

Можете ли вы показать свой код iOS для этого? – nhahtdh

+3

Убедитесь, что javascript находится в разделе * Копирование ресурсов Bundle *, а не в разделе * Compile Sources *. Я не знаю почему, но иногда Xcode думает, что он должен скомпилировать ваш Javascript. Конечно, он не может, поэтому вы просто завершаете кучу кода без кода и никакого ресурса для своего HTML. – borrrden

ответ

6

Этот вопрос немного старый, но так как он не был дан ответ, я хотел бы отметить, что если вы хотите, чтобы ваш веб-просмотра, чтобы загрузить Javascript файл, находящийся в вашем пачке, так сделать это:

[webView loadHTMLString:html 
       baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]]; 

Если вы не указали BaseUrl нет никаких шансов, что загружен файл Javascript.

+0

Это именно то, что я сделал. Проблема в том, что javascript по-прежнему не загружен, хотя css в порядке. –

+0

Я вижу ... вы уверены, что ваш javascript не содержит ошибок? проблема с JS заключается в том, что она терпит неудачу. как очень грубая отладка, вы можете добавить в него некоторые предупреждения (скажем, первую строку в вашем js-файле) и посмотреть, всплывают ли они ... – sergio

+0

Да, я тестировал это, добавив только одну строку JS код для предупреждения. Но он не работает. Работает CSS. Спасибо, в любом случае. –

2

как другие сказали

  • использование BaseUrl: [NSURL fileURLWithPath: [[NSBundle mainBundle] bundlePath]]];

  • копировать ресурсы источника и не в ресурсы компиляции.

thats it!

5

По умолчанию xcode помещает новые файлы Javascript в ресурсы компиляции вместо ресурсов Bundle. Нажмите на свой проект, а затем на свою цель. В разделе «Сборка фаз» вы можете увидеть файлы Javascript в разделе «Скомпилировать источники». Перетащите их вниз в «Copy Bundle Resources».

+1

Это именно то, что случилось со мной, когда я перетащил несколько JS-файлов в свой проект. Я удалил их из ** Компилировать ресурсы **, потому что Xcode выдавал ошибку, но без них в ** Bundle Resources ** они не были доступны для моего приложения. Благодаря! –

+0

Это спасло мою жизнь! Спасибо @ Kevin Borders! – gilsaints88

Смежные вопросы