2012-05-04 27 views
6

Trong khi cố gắng gỡ lỗi thông báo lỗi Phonegap ("Gọi tới OpenGL ES api không có ngữ cảnh hiện tại" có vẻ như không gây ra bất kỳ sự cố nào), tôi đã xem phiên bản mới hơn của tệp cordova.xml đi kèm với PhoneGap 1.6 và có dòng sau trong đó:Cordova.xml là gì trong Phonegap?

<preference name="classicRender" value="true" /> 

Thêm dòng này để bản sao của tôi cordova.xml đã không làm bất cứ điều gì. Nhưng sau đó tôi cũng nhận thấy các chú thích và các dòng khác trong tập tin liên quan đến nguồn gốc truy cập và tôi nhận thấy rằng ứng dụng của tôi có nguồn gốc truy cập được đặt là 127.0.0.1 nhưng tất cả mã của tôi đều nằm trên máy chủ từ xa và điều này dường như không quan trọng .

Tôi đã tìm kiếm tài liệu nhưng không tìm thấy bất kỳ tài liệu nào.

Vì vậy, tôi phải hỏi: tệp cordova.xml là gì, những chỉ thị nào có thể được đưa vào đó và chúng phải làm gì?

Trả lời

15

Tệp cordova.xml là tệp cấu hình chỉ định cài đặt cho url, cấp độ nhật ký và hiển thị trong danh sách trắng. Tệp trước đây được gọi là phonegap.xml và được đổi tên khi Adobe/Nitobi donated the PhoneGap codebase gửi đến Tổ chức phần mềm Apache (ASF) để ủ.

Tệp bao gồm ba cài đặt.

Đầu tiên là:

<access origin> 

trong đó xác định một danh sách đã được phê duyệt của các URL có thể được nạp. Các url này được thêm vào bộ nhớ cache danh sách trắng trong lớp DroidGap. Chỉ các URL trên danh sách trắng mới có thể được tải trong webview của Cordova hoặc một phiên bản trình duyệt mới.

Thứ hai là:

<log level> 

đó quy định cụ thể mức độ đăng nhập để gỡ lỗi trên Android. Nó có thể được đặt thành ERROR, WARN, INFO, DEBUG hoặc VERBOSE (mặc định = ERROR).

Thứ ba là:

<preference name="classicRender" /> 

mà bộ lĩnh vực

private boolean classicRender; 

trong lớp DroidGap. Các tài liệu tham khảo chỉ với những gì nó thực sự làm mà tôi có thể tìm thấy là trong this commit tới Cordova:

if(android.os.Build.VERSION.SDK_INT < 14 && this.classicRender) 
    { 
     //This hack fixes legacy PhoneGap apps 
     //We should be using real pixels, not pretend pixels 
    ... 

Có lẽ đó là hữu ích hơn khi biết rằng nó dường như là removed vì nó không hoạt động đúng.

Các cordova.xml được phân tách trong lớp DroidGap, trong phương pháp loadConfiguration():

private void loadConfiguration() { 
    int id = getResources().getIdentifier("cordova", "xml", getPackageName()); 
    ... 
    XmlResourceParser xml = getResources().getXml(id); 
    etc... 

Xem dòng 1252 trong lớp DroidGap cho phương pháp đầy đủ loadConfiguration(). Tất cả ba thuộc tính được phân tích cú pháp nhưng theo liên kết ở trên, nó xuất hiện cài đặt classicRender không hoạt động và có thể bỏ qua.

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