8

Tôi đang viết tiện ích mở rộng chrome đầu tiên của mình. Trong tiện ích mở rộng chrome của tôi, tôi đã thêm một tùy chọn trong menu Ngữ cảnh Nhấp chuột phải.hiển thị thông báo trong tiện ích chrome

 chrome.contextMenus.create({ 
      "id" : "MyExntesion", 
      "title" : "My Extension", 
      "type" : "normal", 
      "contexts" : ["image"], 
      "onclick" : this.handleClick 
     }); 

Trong phương thức handleClick, tôi muốn hiển thị thông báo. Thông báo này sẽ xuất hiện ở góc trên cùng bên phải của cửa sổ trình duyệt vừa xác nhận rằng người dùng đã nhấp vào menu ngữ cảnh. Làm thế nào để làm điều đó?

Tôi đã thực hiện một số nghiên cứu nhưng không tìm thấy bất kỳ điều gì hữu ích. https://developer.chrome.com/extensions/notifications điều này nói về thông báo khay hệ thống, trong trường hợp này https://developer.chrome.com/extensions/browserAction#method-setPopup cho phép bạn tạo cửa sổ bật lên mới nhưng chúng chỉ được hiển thị khi biểu tượng tiện ích mở rộng được nhấp.

Trả lời

20

Có 3 cách chính để hiển thị thông báo trong Chrome.

1) Đã nêu ở trên chrome.notifications API. Nó sẽ hiển thị một bánh mì nướng (không chỉ là một dấu hiệu trong systray), nhưng bạn là một nhà phát triển có ít nói về cách nó xuất hiện. Tổng quan về sử dụng here.

Chrome notification

2) HTML Chuẩn Notification API. Trong Chrome, trông giống như chrome.notifications, ngoại trừ kiểm soát ít hơn định dạng và không được quản lý bởi trung tâm thông báo của Chrome. Tổng quan về sử dụng here.

3) Nếu bạn thực sự muốn kiểm soát cách nó được hiển thị, cách xâm lấn và khó khăn nhất là đưa giao diện người dùng của bạn vào tất cả các trang bằng tập lệnh nội dung.

Bạn phải đối mặt với một số vấn đề nếu bạn làm điều đó:

  • Nói chung, đó là khó khăn hơn để thiết kế giao diện người dùng chính mình;
  • Giao diện người dùng sẽ bị giới hạn ở chế độ xem trang web;
  • CSS có thể bị chảy ra khỏi trang và mangle UI của bạn (mặc dù Shadow DOM có thể là câu trả lời);
  • Bạn cần quyền cấp phép cho "dữ liệu trên tất cả các trang web" chỉ để hiển thị giao diện người dùng của bạn. Nó có xu hướng đe dọa người dùng.

Nếu bạn quyết định đi con đường đó dù sao, đây là một câu hỏi mà có thể giúp đỡ: Chrome extension content scripts custom ui

+0

Tôi không biết nếu bạn đã sử dụng phần mở rộng clipper web Evernote, nhưng là những thông báo thể hiện trong phần mở rộng được xây dựng sử dụng tùy chọn thứ ba mà bạn đề xuất? – sublime

+0

Nhưng nếu bạn đang sử dụng tùy chọn 1 hoặc 2 (Tôi đang cố gắng sử dụng số 2), bạn sẽ nhận được registration_id như thế nào để gửi thông báo đẩy tới trình duyệt chrome? Và làm thế nào để bạn chờ đợi cho rằng thông báo? Cảm ơn bạn vì câu trả lời đó! Các thông báo – eloibm

+1

@eloibm _Displaying_ hoàn toàn không liên quan gì đến việc _xuất hiện chúng. Suy ngẫm về 'chrome.gcm' ** và tài liệu được liên kết **. Nếu bạn vẫn còn câu hỏi, hãy đặt câu hỏi mới - đừng hỏi những câu hỏi tiếp theo không liên quan trong nhận xét, đó không phải là mục đích của nhận xét. – Xan

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