草庐IT

javascript - 我可以从网页以编程方式创建 Chrome 应用程序快捷方式吗?

coder 2023-08-05 原文

我考虑过使用 Chrome 和 HTML5 本地存储来创建一个有用的应用程序并进行销售。然而,我认为我会遇到的问题是将其安装在计算机上的交付机制。假设该应用程序是 wikipedia.com(尽管它不是)。可以使用 Chrome 手动转到那里,然后选择 Spanner 图标、工具、创建应用程序快捷方式,并为该应用程序制作桌面和应用程序菜单图标。

好的,很好,但是有没有一种方法可以让我编写网页链接或表单按钮,以便它为我执行此操作?换句话说,单击一个按钮或链接,它会显示“创建应用程序快捷方式”表单。我希望 Google Chrome 上有这种鲜为人知的方式来使用 HTML 或 Javascript 来触发显示该表单。

至于那些没有 Chrome 浏览器的人,我可以检测到并给他们一个按钮,他们可以点击该按钮向他们发送电子邮件。在电子邮件中,它将为他们提供安装 Chrome 的说明,然后是另一个链接,以便他们可以在 Chrome 中访问此页面,以获得显示“创建应用程序快捷方式”表单的按钮。

最佳答案

目前,在提供更好的答案之前,这是一种使用 Chrome 手动部署桌面应用程序的技术,无需在 Chrome 商店中注册:

  1. 用户购买产品后,通过电子邮件向他们发送用于注册产品的序列号和用于安装此新产品的网址。
  2. 网址是网络应用的实际网址。但是,默认情况下它不显示其正常内容。相反,网络应用程序处于“安装程序模式”。它通过查看可能尚未安装的 200 年持久、加密、注册 cookie 来做到这一点。 (请注意,如果他们删除 cookie,不会造成任何伤害——只是要求他们重新注册。)
  3. 网络应用程序在安装程序模式下做的第一件事是检测用户代理。如果它发现这不是 Chrome,它会给他们 a link to install Chrome并告诉他们再次按照已经发送的说明电子邮件进行操作,但使用 Chrome 来执行此操作。 (您可能还想提供一个表格,以便再次向他们发送说明和序列号。)
  4. 用户安装 Chrome 并再次返回此页面,或者已经是 Chrome 用户。安装程序模式然后显示一条消息,请在 Chrome 中按 ALT-F 键,或按工具栏中的 Spanner 图标,然后选择工具 > 创建应用程序快捷方式,选中两个复选框,单击确定,然后单击“已执行任务”按钮。
  5. 用户按照说明创建桌面/应用程序快捷方式,然后单击“已执行任务”。
  6. 然后用户会看到一个注册表单,他们需要在其中输入通过电子邮件发送给他们的序列号。用户输入此内容并单击“注册”按钮。
  7. 服务器验证注册,然后存储一个持久的、200 年的加密 cookie,基本上说,“这个人已注册。”这会阻止网络应用在安装程序模式下运行。
  8. 然而,安装程序模式仍处于事件状态,并向他们显示最终提示:“您可以关闭浏览器并从桌面或您创建的应用程序快捷方式运行新应用程序的图标。该图标名为“{insert在这里命名}'。”
  9. 他们关闭浏览器并双击图标。应用程序加载,注册 cookie 被读取,网络应用程序不再以安装程序模式运行——它像往常一样显示应用程序内容。除了这不是 100% 真正的自动化安装这一事实之外,唯一的缺点是,由于主页不是本地文件(缓存),Web 应用程序无法真正完全脱机工作。当然,它可以使用 HTML5 离线存储,但双击桌面快捷方式将始终连接到您的 Web 应用程序站点。

关于javascript - 我可以从网页以编程方式创建 Chrome 应用程序快捷方式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7532739/

有关javascript - 我可以从网页以编程方式创建 Chrome 应用程序快捷方式吗?的更多相关文章

  1. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  2. ruby - 如何在 Ruby 中顺序创建 PI - 2

    出于纯粹的兴趣,我很好奇如何按顺序创建PI,而不是在过程结果之后生成数字,而是让数字在过程本身生成时显示。如果是这种情况,那么数字可以自行产生,我可以对以前看到的数字实现垃圾收集,从而创建一个无限系列。结果只是在Pi系列之后每秒生成一个数字。这是我通过互联网筛选的结果:这是流行的计算机友好算法,类机器算法:defarccot(x,unity)xpow=unity/xn=1sign=1sum=0loopdoterm=xpow/nbreakifterm==0sum+=sign*(xpow/n)xpow/=x*xn+=2sign=-signendsumenddefcalc_pi(digits

  3. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  4. ruby - 将差异补丁应用于字符串/文件 - 2

    对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl

  5. ruby - 如何以所有可能的方式将字符串拆分为长度最多为 3 的连续子字符串? - 2

    我试图获取一个长度在1到10之间的字符串,并输出将字符串分解为大小为1、2或3的连续子字符串的所有可能方式。例如:输入:123456将整数分割成单个字符,然后继续查找组合。该代码将返回以下所有数组。[1,2,3,4,5,6][12,3,4,5,6][1,23,4,5,6][1,2,34,5,6][1,2,3,45,6][1,2,3,4,56][12,34,5,6][12,3,45,6][12,3,4,56][1,23,45,6][1,2,34,56][1,23,4,56][12,34,56][123,4,5,6][1,234,5,6][1,2,345,6][1,2,3,456][123

  6. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  7. ruby - 使用 Vim Rails,您可以创建一个新的迁移文件并一次性打开它吗? - 2

    使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta

  8. ruby - 我可以使用 Ruby 从 CSV 中删除列吗? - 2

    查看Ruby的CSV库的文档,我非常确定这是可能且简单的。我只需要使用Ruby删除CSV文件的前三列,但我没有成功运行它。 最佳答案 csv_table=CSV.read(file_path_in,:headers=>true)csv_table.delete("header_name")csv_table.to_csv#=>ThenewCSVinstringformat检查CSV::Table文档:http://ruby-doc.org/stdlib-1.9.2/libdoc/csv/rdoc/CSV/Table.html

  9. ruby-on-rails - 无法使用 Rails 3.2 创建插件? - 2

    我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby​​1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在

  10. ruby-on-rails - Rails 应用程序之间的通信 - 2

    我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此

随机推荐