2014-10-26 20 views
7

Tôi đang phát triển một ứng dụng HTML5 trên PhoneGap, một ứng dụng đang thực hiện một số thao tác hình ảnh.Hiệu suất WebView của iOS8 vẫn chậm hơn rất nhiều so với Safari

Điều tôi thấy là cùng một tập lệnh (http://fornace.io/jstests/gogh.html) mất khoảng 10 lần để thực hiện bên trong Phonegap so với trong Safari di động (từ 5 giây đến khoảng 45).

Vì tất cả chúng ta đều hiểu rằng iOS8 Webkit cuối cùng là allowed all the apps to use the same Nitro engine as Safari, tôi tự hỏi liệu có ai đó có thể giải thích sự khác biệt lớn này vẫn còn đó không, và nếu có cách giải quyết khác.

Trả lời

6

Có hai trang web khác nhau về iOS8. UIWebView chuẩn và WKWebView mới.

WKWebView là công cụ cải thiện mọi thứ, nhưng khi các nhà phát triển Cordova đã giải thích chi tiết here, có lỗi trong đó WKWebView không cho phép tải các tệp cục bộ và do đó không thể triển khai với Cordova ngay bây giờ.

Điều này giải thích sự cố bạn đang gặp phải. Rõ ràng Apple nhận thức được vấn đề và nếu nó được giải quyết, tôi hy vọng nó sẽ được thực hiện ở Cordova sau thời gian đó.

+0

Cảm ơn, điều đó giải thích rõ. Chúng tôi sẽ giải quyết một phần của mã nguồn gốc trong khi đó, nhưng tôi thực sự mong chờ nó. –

+1

Mọi tin tức về điều này? –

2

PhoneGap vẫn đang sử dụng UIWebView vì lỗi với WKWebView, bạn sẽ phải triển khai ứng dụng gốc sẽ mở URL của bạn với WKWebView cho đến khi Phonegap chuyển sang WKWebView. Rõ ràng là lỗi với việc mở các tệp cục bộ bằng WKWebView, nếu bạn muốn mở một URL trong WKWebView, có thể bây giờ.

Đây là một ứng dụng thử nghiệm webview mà bạn có thể sử dụng để kiểm tra URL của bạn trong WKWebViewUIWebView, và kiểm tra hiệu suất: https://itunes.apple.com/us/app/browser-resizer/id928647773?mt=8&at=10ltWQ

+0

Cảm ơn, đó là câu trả lời tương tự Dawson đã đưa ra. Nhưng bạn xứng đáng nhận được một ưu đãi cho ứng dụng: Tôi đã thử nghiệm và tôi có thể thấy rằng với WKWebView việc thực thi tập lệnh này thực sự nhanh hơn gấp 10 lần! –

3

Thật vậy, chúng ta phải chờ cho Cordova để hỗ trợ các WKWebView mới. Và Cordova cần chờ Apple phát hành phiên bản iOS cố định.

Trong khi đó, tôi đã tạo một plugin cho phép bạn sử dụng WKWebView làm chế độ xem web mặc định cho ứng dụng Cordova. Nó bao gồm một vài sửa chữa và cách giải quyết cho các blockers Cordova chạy vào.

Lấy trong khi vẫn còn tươi tại https://github.com/EddyVerbruggen/cordova-plugin-wkwebview

+0

Điều này có vẻ tuyệt vời. Bạn có bao gồm máy chủ http không? –

+1

Có thực sự tôi đã phải (để tải tệp cục bộ qua XHR). Ngoài ra, plugin chặn các yêu cầu XHR.open để định tuyến lại chúng tới máy chủ web cục bộ. Hoạt động khá ngọt ngào. –

+0

Công việc tuyệt vời! Tôi sẽ kiểm tra nó và cho bạn biết. –

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