2012-06-28 26 views
9

Tôi có ứng dụng iOS để tải chuỗi html tham chiếu đến tệp css bên ngoài và tệp javascript trong cùng một thư mục.iOS loadHtmlString trong UIWebView không hoạt động với Javascript

Đây là tập tin html của tôi:

<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> 

Các tập tin css hoạt động tốt nhưng có vẻ như các tập tin js không bao giờ nạp. Điều gì có thể là lý do?

Bằng cách tôi đang sử dụng loadHtmlString: Phương thức BaseUrl để tải chuỗi html của tôi.

Cảm ơn

+1

Tham khảo [this] (http://stackoverflow.com/questions/7012537/sourcing-local-javascript-in-uiwebview-ios?rq=1) liên kết và hy vọng nó hữu ích vì tôi chưa thử điều đó. –

+0

Bạn có thể hiển thị mã iOS cho điều này không? – nhahtdh

+3

Kiểm tra để đảm bảo rằng javascript nằm trong phần * Sao chép tài nguyên gói * của bạn và không nằm trong phần * Biên dịch nguồn *. Tôi không biết tại sao nhưng đôi khi Xcode nghĩ rằng nó nên biên dịch Javascript của bạn. Tất nhiên, nó không thể, vì vậy bạn chỉ cần gió lên với một loạt các mã không có op và không có tài nguyên cho HTML của bạn. – borrrden

Trả lời

6

Câu hỏi này là một chút cũ, nhưng kể từ khi nó chưa được trả lời, tôi muốn chỉ ra rằng nếu bạn muốn xem web của bạn để tải một tập tin javascript cư trú trong nhóm của mình, cách để làm điều đó là:

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

Nếu bạn không chỉ định baseURL, không có khả năng tệp javascript được tải.

+0

Đây chính xác là những gì tôi đã làm. Vấn đề là javascript vẫn không được tải mặc dù css là tốt. –

+0

Tôi hiểu ... bạn có chắc chắn rằng javascript của bạn không chứa một số lỗi không? vấn đề với JS là nó không hoạt động âm thầm. như một bản sửa lỗi rất thô, bạn có thể đặt một số câu cảnh báo trong đó (nói, dòng đầu tiên trong tệp js của bạn), và xem chúng có xuất hiện không ... – sergio

+0

Có, tôi đã thử nghiệm bằng cách chỉ thêm một dòng JS mã để cảnh báo.Nhưng nó không hoạt động. CSS hoạt động. Dù sao cũng cảm ơn bạn. –

2

như những người khác đã nói

  • sử dụng baseurl: [NSURL fileURLWithPath: [[NSBundle mainBundle] bundlePath]]];

  • sao chép Tài nguyên gói và không trong tài nguyên biên dịch.

thats it!

5

Theo mặc định, xcode sẽ đặt các tệp Javascript mới trong Tài nguyên biên dịch thay vì Tài nguyên gói. Nhấp vào dự án của bạn, sau đó vào mục tiêu của bạn. Trong 'Giai đoạn xây dựng', bạn có thể thấy các tệp Javascript trong 'Biên dịch nguồn'. Kéo chúng xuống để 'Sao chép tài nguyên gói'.

+1

Đây chính xác là những gì đã xảy ra với tôi khi tôi kéo một vài tệp JS vào dự án của mình. Tôi đã xóa chúng khỏi ** Tài nguyên biên dịch ** vì Xcode đã ném lỗi nhưng không có chúng trong ** Tài nguyên nhóm **, chúng không có sẵn cho ứng dụng của tôi. Cảm ơn! –

+0

Điều này đã cứu mạng tôi! Cảm ơn @Kevin Borders! – gilsaints88

Các vấn đề liên quan