2012-05-01 50 views
12

Tôi đến đây sau nhiều giờ tìm kiếm giải pháp và thử các cách tiếp cận khác nhau để khắc phục vấn đề này tôi đang gặp với JQuery Mobile và ứng dụng iPad của tôi.JQuery Mobile không hoạt động bên trong UIWebView

Điều tôi đang cố gắng làm là ứng dụng báo cáo với Biểu đồ kết hợp. Tôi đã kết xuất thành công các biểu đồ trong khung nhìn web (UIWebView) bằng các phương thức khác nhau, và theo các ví dụ khác nhau, nhưng những gì tôi muốn làm bây giờ là hoàn thành nhiệm vụ tương tự bằng cách sử dụng khung công tác JQuery Mobile.

Tôi là không sử dụng phonegap và tôi đã làm theo các bước để gửi thư liên quan đến tích hợp JQuery Mobile + Xcode (tôi nghĩ). Các biểu đồ tải không có vấn đề gì trên các trình duyệt trên máy tính để bàn và di động của tôi (iPad, iPhone 4 và iPod Touch 2G), nhưng không có cách nào chúng tải bên trong UIWebView của tôi (mặc dù tôi đang sử dụng cùng một mã chính xác).

Đây là những gì tôi đang làm:

1) Thêm tập tin cần thiết (JS, CSS, và HTML) cho dự án để sử dụng chúng tại địa phương. Sau khi thêm chúng, tôi di chuyển mọi thứ bằng phần mở rộng .js từ "Biên dịch nguồn" sang "Sao chép tài nguyên gói". Nó trông giống như thế này:

enter image description here

enter image description here

2) Tải tập tin thử nghiệm HTML của tôi (page_A1.html) vào xem web:

enter image description here

3) Kiểm tra xem tất cả mọi thứ được thiết lập trên tệp HTML có đường dẫn chính xác và phiên bản mới nhất của khung:

enter image description here

4) Xây dựng và Chạy chỉ để có chế độ xem web trống.

Nếu tôi thử nghiệm Javascript với một cảnh báo như thế này:

enter image description here

Nó sẽ hiển thị cảnh báo minh Javascript đang làm việc:

enter image description here

Và nếu tôi đặt một số văn bản trên vùng chứa nơi biểu đồ được cho là hiển thị:

enter image description here

tôi sẽ nhận được các văn bản bên trong xem web:

enter image description here

Tôi cũng đã thử nghiệm với các liên kết khuôn khổ từ xa thay vì những người địa phương và phiên bản cũ của thư viện không có may mắn.Không có gì khác nhau xảy ra:

enter image description here

Dường obvius với tôi rằng

$(document).ready(function(){ 

không được nhận hoặc gọi bởi xcode.

Đây là những gì tôi muốn thực hiện:

enter image description here

Tôi không biết những gì khác để kiểm tra. Nếu bạn có bất kỳ ý tưởng tôi muốn được nhiều hơn biết ơn.

Trả lời

10

Những người không bao giờ. Cuối cùng tôi đã nhận được nó.

Một số thói quen cũ từ những ngày phát triển web đã phát tôi ở đây.

Nó tuns ra bạn không cần phải xác định cấu trúc thư mục bên trong cho CSS của bạn và JS tập tin vì vậy đây:

<link rel="stylesheet" href="css/jquery.mobile-1.1.0.min.css" /> 

<script src="js/jquery-1.7.2.min.js"></script> 

<script src="js/jquery.mobile-1.1.0.min.js"></script> 

shoudl thực sự là như thế này trong Xcode:

<link rel="stylesheet" href="jquery.mobile-1.1.0.min.css" /> 

<script src="jquery-1.7.2.min.js"></script> 

<script src="jquery.mobile-1.1.0.min.js"></script> 

Unbelievable tôi mất bao nhiêu thời gian để tìm ra điều đó.

Bây giờ nó hoạt động.

+1

Vâng .. Bạn đã cứu cuộc sống của tôi .. – rdurand

+0

Tôi đang gặp vấn đề tương tự, nhưng với một thử nghiệm accordion. Bạn có thể giúp tôi được không? –

+0

Thông tin được đăng ở đây có giúp bạn không? Nếu không, vấn đề cụ thể bạn đang gặp phải là gì? –

4

Cách chính xác để thực hiện việc này là tải tệp JS như trong một String và gọi phương thức [stringByEvaluatingJavascriptFromString: @ "Javascript here ..."] của UIWebView.

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"content" ofType:@"js" inDirectory:@""]; 
NSData *fileData = [NSData dataWithContentsOfFile:filePath]; 
NSString *jsString = [[NSMutableString alloc] initWithData:fileData encoding:NSUTF8StringEncoding]; 

[webView stringByEvaluatingJavaScriptFromString:jsString]; 

Mặc dù điều này không khác nhiều, sau đó mã hóa chúng thành tệp html, nhưng nó còn mô đun hóa nhiều hơn nữa. Happy Coding :)

+0

Điều này làm việc cho tôi! :-) cảm ơn rất nhiều. – byJeevan

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