【问题标题】:How do I handle options in a packaged Chrome App?如何处理打包的 Chrome 应用程序中的选项?
【发布时间】:2015-10-17 04:49:51
【问题描述】:

我想将现有的 JS 应用程序部署为打包的 Crome 应用程序,以使其可在 Chrome 网上应用店中分发。

在“旧版打包应用程序”中,有/曾经有一种方法可以指定 options_ui 页面(在旧版(旧版 - 旧版?)应用程序中,它是 options_page),可通过特殊链接访问来自您的应用,或通过来自chrome://extensions 内部的自动链接。

似乎没有提及如何迁移options_* 功能,但如果Chrome 应用的manifest.json 具有options_ui 键,则会在扩展页面上生成以下警告:

  • 'options_ui' 仅允许用于扩展和旧版打包应用,但这是一个打包应用。

(参考)

【问题讨论】:

    标签: google-chrome-app


    【解决方案1】:

    您可以在图标上创建一个上下文菜单项来打开您的选项。

    添加“contextMenus”权限,然后在您的后台页面中添加类似这样的内容:

    chrome.runtime.onInstalled.addListener(function() {
      chrome.contextMenus.create({ id: "options", title: "Options", contexts: ["launcher"] })
    })
    
    chrome.contextMenus.onClicked.addListener(function(info) {
      if(info.menuItemId == "options") {
        chrome.app.window.create("options.html")
      }
    })
    

    【讨论】:

    • 为了突出主要思想,对于应用程序,您没有特定的 UI 来显示选项(因为应用程序应该独立于浏览器) - 它们应该显示在您的应用程序中,无论是在一个单独的窗口或以某种方式在您的主窗口中,并从应用程序本身调用。 Daniel 的回答展示了如何从启动器调用它。
    • chrome.contextMenus 未定义?哦,缺少应用权限 - developer.chrome.com/extensions/contextMenus
    • 嗯,这种方法可行,但我认为 Chrome 中存在错误。它是否“有效”取决于您对构成“启动器”的期望:上下文菜单应用于操作系统原生菜单(我 Mac 上 Dock 中的 Chrome 应用程序列表图标),但它是 显示在 Chrome 内置启动器 chrome://apps 中。 :-/
    猜你喜欢
    • 1970-01-01
    • 2016-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多