2009-08-09 9 views
7

Tôi định viết một Desktop Client cho Windows và Mac. Nó sẽ được hỗ trợ bởi các kỹ thuật web (HTML + JS). Do đó, nó sẽ chạy trên một công cụ WebKit trên màn hình của người dùng.Framework cho (HTML + JS) Desktop Client

Gần đây, tôi thấy một cách tiếp cận thú vị cho vấn đề này: Appcelerator Tôi thích khái niệm cơ bản của nó, nhưng tôi không muốn phụ thuộc vào dịch vụ của họ. Thay vào đó, tôi muốn có toàn quyền kiểm soát chương trình WebKit, ứng dụng này sẽ tải ứng dụng của tôi.

Có khung công tác WebKit nguồn mở nào phù hợp để xây dựng ứng dụng dành cho máy tính để bàn không? Các tính năng tích hợp trên máy tính để bàn, chẳng hạn như hỗ trợ Growl và các nội dung được đánh giá cao.

Kính trọng,

Stefan


Cập nhật: Tôi không tìm kiếm Adobe Air ;-)

Trả lời

11

Bên cạnh Appcelerator, tôi biết hai khung công tác gui trên máy tính để bàn có thành phần trình duyệt bao bọc webkit: GTK + và Qt. Bạn có thể làm cho thành phần trình duyệt điền vào cửa sổ ứng dụng của bạn và viết hầu hết (hoặc tất cả) của ứng dụng trong HTML + CSS. Nếu bạn thích ngôn ngữ Python hoặc thư viện chuẩn rất quan trọng, bạn có thể sử dụng các ràng buộc python pyQt hoặc pyGTK.

Một thay thế "mạnh mẽ" hơn cho Prism, nếu bạn sẵn sàng sử dụng động cơ Gecko, là XULRunner (https://developer.mozilla.org/En/XULRunner). Trong khi Prism là một tập hợp các ràng buộc nhẹ cho máy tính để bàn cho một ứng dụng web, XULRunner cho phép bạn xây dựng một ứng dụng hoàn chỉnh như Firefox hoặc Thunderbird, vv Trong khi nhiều ứng dụng XULRunner được viết bằng XUL, thật dễ dàng để viết toàn bộ ứng dụng bằng HTML/CSS bên trong một thành phần XUL WebBrowser duy nhất - và javascript của bạn vẫn có tất cả sức mạnh của ứng dụng máy tính để bàn gốc.

Tôi đã viết một vài ứng dụng dành cho máy tính để bàn bằng XULRunner. Hầu như tất cả các mã của ứng dụng là HTML/CSS/Javascript, nhưng tôi đã đưa vào khung công tác Python (thông qua pyXPCOM và pyXPCOMext) và đã viết một lớp mỏng để lộ ra một số chức năng Python cho Javascript. Các thành phần của Mozilla đi kèm với XULRunner cung cấp cho bạn một số lượng khá nhiều chức năng miễn phí, nhưng nếu bạn thấy mình cần nhiều chức năng hơn hoặc một thư viện lập trình đầy đủ tính năng, Python sẽ thực hiện thủ thuật. Ngoài ra còn có các ràng buộc với Java. Hoặc, nếu bạn muốn sử dụng thư viện C hoặc C++, bạn có thể xây dựng XULRunner từ đầu.

Cập nhật: Một vài điều đã thay đổi kể từ khi tôi viết ở trên vào năm 2009. Đối với một dự án Prism đã bị loại bỏ khỏi Mozilla Labs và sau đó ngừng hoàn toàn vào cuối năm 2011 (http://www.salsitasoft.com/2011/09/08/discontinuing-webrunner/). Một giá trị thay thế khác là https://github.com/rogerwang/node-webkit.

Tháng 12 năm 2014 Cập nhật: Một tùy chọn gần đây khác là Shell Atom của GitHub.Nó sử dụng mô-đun "nội dung" của Chromium, giống như nút webkit và Chromium Embedded Framework (và xuất bản nó dưới dạng một lib độc lập: https://github.com/brightray/libchromiumcontent). Một sự khác biệt lớn từ node-webkit là thay vì hợp nhất vòng lặp sự kiện của nút với vòng lặp sự kiện của Chromium, Atom khởi chạy cả hai trong các quy trình riêng biệt và sử dụng hỗn hợp đồng bộ và các thông điệp liên tiến trình không đồng bộ để giao tiếp giữa chúng.

Nếu bạn quan tâm đến việc nhúng Chromium trong ứng dụng C++ hoặc .Net, cũng có Awesomium.

+0

Rất tuyệt khi gọi XULRunner. Nó có thể là giá trị chỉ ra rằng kể từ khi Firefox 3, [XULRunner đi kèm với Firefox] (https://developer.mozilla.org/en/XULRunner_tips#Using_Firefox_3_to_run_XULRunner_applications)! Chỉ cần tạo một kịch bản sử dụng tệp thực thi của Firefox để khởi chạy ứng dụng XUL của bạn: 'path/to/firefox -app đường dẫn/đến/application.ini'. – styfle

1

Nếu bạn không hoàn toàn cam kết webkit, tôi nhớ lại điều gì đó về một dự án cho phép bạn làm điều tương tự với công cụ Firefox. Về cơ bản, một cửa sổ nhỏ gọn xung quanh biểu tượng kết xuất đồ gecko cùng với Gears và lối tắt trên màn hình cho ứng dụng của bạn. Không thể tìm thấy một liên kết tại thời điểm này, mặc dù.

+0

Bạn đang viết về http://prism.mozilla.com/? Tôi đã thử nghiệm nó một vài tháng trước, nhưng nó cảm thấy quá giống như một trình duyệt cho tôi. Hm, có lẽ tôi nên xây dựng một cái gì đó tùy chỉnh. – Stefan

3

Nền tảng Appcelerator là open source, do đó bạn không phụ thuộc vào công ty - bạn luôn có thể tự mình hack mã xung quanh nếu muốn. Nếu bạn muốn kiểm soát nhiều hơn, bạn luôn có thể chỉ hook directly into WebKit. Gecko tương đương với AIR/Appcelerator Joel đề cập đến có lẽ là Mozilla Prism.

+0

Robert, cảm ơn bạn đã liên kết. Rất thú vị. – Stefan