2011-06-27 14 views

Trả lời

19

Bạn có đang sử dụng bất kỳ Javascript nào trên trang bạn đang tải không?

Cụ thể, bạn đang sử dụng phương pháp

- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script 

Như tình trạng docs sau

thời gian thực hiện hoạt Javascript được giới hạn đến 10 giây cho mỗi điểm nhập cảnh cấp cao nhất. Nếu kịch bản của bạn thực hiện trong hơn 10 giây, xem web dừng thực thi kịch bản

Và điều này dường như gắn liền với thông báo lỗi bạn đang nhìn thấy trong giao diện điều khiển

+1

im làm việc trên một ứng dụng twitter. Chế độ xem web tải trang đăng nhập twitter. Sau khi tôi đã nhập thông tin đăng nhập của mình và nhấp vào "Ủy quyền ứng dụng", trình điều khiển chế độ xem của tôi bị loại bỏ nhưng các nút trên chế độ xem nền bị kẹt –

+0

Bạn có thể đăng bất kỳ mã nào của mình để tôi có thể hiểu rõ hơn về cách bạn đã triển khai mọi thứ không? Ví dụ: bạn có bật/tắt các nút trên chế độ xem theo cách thủ công hay không và liệu bạn có đang sử dụng các phương thức ủy quyền của webView để quản lý điều này không? –

+0

Tôi đã giải quyết được vấn đề. Có một chế độ xem nền không bị xóa sau khi tôi loại bỏ bộ điều khiển chế độ xem phương thức. Dù sao cảm ơn micpringle cho câu trả lời của bạn. –

3

FWIW, có vẻ như đặc biệt của tôi thời gian chờ đã xảy ra do lỗi javascript trong các trường hợp hiếm hoi. Bạn có thể thử gói JS của bạn trong một thử/bắt hoặc cải thiện nó để được nhiều hơn lỗi khoan dung.


Chi tiết: Tôi đã sử dụng chuỗi JS sau:

NSString* js = @"document.getElementById(\"main\").offsetHeight"; 
int height = [[_web_view stringByEvaluatingJavaScriptFromString:js] intValue]; 

tôi biết rằng vấn đề UIWebView điều này có thể xảy ra nếu xem web không nạp đầy đủ (ví dụ JS gọi trước khi webViewDidFinishLoad.: phương pháp, vì vậy tôi đoán rằng có lẽ các đối tượng "chính" đã mất tích vì vậy, tôi sửa đổi JS của tôi như sau và nó làm việc:..

NSString* js = @"document.getElementById(\"main\") ? document.getElementById(\"main\").offsetHeight : -1"; 
+0

Hmmm điều này nghe có vẻ thú vị, bất cứ ai khác cofirm rằng điều này giúp giải quyết vấn đề? –

0

Dưới đoạn mã làm việc cho tôi

if(!webview.isLoading) 
{ 
    // update your code. 
} 
0

Cố gắng sử dụng WKWebView thay vì UIWebView.thế này phù hợp với tôi.

Trong trường hợp của tôi, tôi cố gắng sử dụng UIWebView để mở PDF.some cục bộ của tệp PDF có thể chứa một số mã JS. Sau đó, tôi gặp sự cố này.

Sau khi sử dụng WKWebView, mọi thứ hoạt động hoàn hảo

Apple cũng khuyến cáo bạn sử dụng WKWebView nếu ứng dụng của bạn chạy trong iOS 8 và sau

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