草庐IT

php - 作为 JSON API 的 GUI 的 Chrome 扩展

coder 2024-01-03 原文

我正在使用 PHP 做一个大型项目,它是一个用于旅行社的 CRMSmart Ticketing and Processing System我打算让它只在 chrome 上可用。

我是 Chrome Extensions/Apps 的新手,但是当我阅读有关创建扩展的内容时,令我惊讶的是我可以使用任何 JS 代码创建任何 html 内容包括在内。


我的问题是:

  1. 我可以在一些扩展中包含我的应用程序 GUI 和纯 HTML && CSS && JavaScript 并让它发送/接收请求吗到我的 PHP-API 因为它是完整的 AJAX 项目,所以它已经存在于我的代码中?

  2. 如果可以的话;我必须如何创建 Google-Chrome-AppGoogle-Chrome-Extension 它们之间有什么区别以及从哪里开始阅读所需的解决方案。


IF this can be done it will be perfect since the GUI elements (HTML, JS, CSS, Images, etc..) will be loaded from local store of each user/employee's machine and the only transferred data would be JSON requests.

最佳答案

是的,您可以使用纯 HTML、CSS 和 JavaScript 创建 GUI。这实际上是在 Chrome 扩展中制作 GUI 的唯一方法。如果设计为相当典型的客户端可访问 API,那么您基于 PHP 的 API 当然可以通过扩展访问。

以下是扩展程序和打包应用程序的简要说明:

  • 扩展通常用于增强浏览器体验。例如,分析用户正在浏览的页面并突出显示文本。 Chrome 公开了几个与浏览器和浏览体验相关的很棒的 AP​​I。然而,它只是 JavaScript、CSS 和 HTML,因此绝对有可能更进一步并创建功能非常完备的应用程序。但是,扩展 API 中没有特定于 UI 的功能可以更轻松地创建复杂的 Web 应用程序。这不是扩展的目的。看the extension in the Chrome Web store看一些例子。可以找到开发文档here .

  • Chrome Packaged Apps允许您使用 HTML、CSS 和 JavaScript 开发一个完整的桌面应用程序。您可以使用典型的 Web 技术创建复杂的应用程序。这是一项相当新的技术,但有很大的潜力。

  • “Chrome 应用程序”这个概念有点令人困惑,它实际上只是一种打包典型网络应用程序(或网站)以在 Chrome 网上应用店中显示的方法。这不是真正的开发技术。

请记住,Chrome 扩展程序和打包应用程序不是用于创建网络应用程序的嵌入式 UI 框架。它们分别是用于增强浏览器体验和创建类似桌面的应用程序的特定技术。

例如,如果您要创建 Amazon.com,则不会将主网站创建为扩展程序或打包应用程序。您可能会使用典型的 Web 开发堆栈来开发它,并将其作为典型的网站发布。然后,您可能会创建一个 Chrome 扩展程序,它会在您的 Chrome 浏览器中弹出一个窗口并显示您最近的订单,或者在您浏览互联网时在亚马逊商店中查找产品,但您可能不会将整个网站创建为扩展程序。

使用打包应用程序,您可以创建一个与 Amazon 交互的桌面应用程序,但这实际上只是一个桌面应用程序。

关于php - 作为 JSON API 的 GUI 的 Chrome 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18456629/

有关php - 作为 JSON API 的 GUI 的 Chrome 扩展的更多相关文章

  1. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  2. ruby - RSpec - 使用测试替身作为 block 参数 - 2

    我有一些Ruby代码,如下所示:Something.createdo|x|x.foo=barend我想编写一个测试,它使用double代替block参数x,这样我就可以调用:x_double.should_receive(:foo).with("whatever").这可能吗? 最佳答案 specify'something'dox=doublex.should_receive(:foo=).with("whatever")Something.should_receive(:create).and_yield(x)#callthere

  3. ruby - 字符串文字中的转义状态作为 `String#tr` 的参数 - 2

    对于作为String#tr参数的单引号字符串文字中反斜杠的转义状态,我觉得有些神秘。你能解释一下下面三个例子之间的对比吗?我特别不明白第二个。为了避免复杂化,我在这里使用了'd',在双引号中转义时不会改变含义("\d"="d")。'\\'.tr('\\','x')#=>"x"'\\'.tr('\\d','x')#=>"\\"'\\'.tr('\\\d','x')#=>"x" 最佳答案 在tr中转义tr的第一个参数非常类似于正则表达式中的括号字符分组。您可以在表达式的开头使用^来否定匹配(替换任何不匹配的内容)并使用例如a-f来匹配一

  4. c - mkmf 在编译 C 扩展时忽略子文件夹中的文件 - 2

    我想这样组织C源代码:+/||___+ext||||___+native_extension||||___+lib||||||___(Sourcefilesarekeptinhere-maycontainsub-folders)||||___native_extension.c||___native_extension.h||___extconf.rb||___+lib||||___(Rubysourcecode)||___Rakefile我无法使此设置与mkmf一起正常工作。native_extension/lib中的文件(包含在native_extension.c中)将被完全忽略。

  5. ruby-on-rails - 应用程序的名称是否可以作为变量使用? - 2

    当我创建一个Rails应用程序时,控制台:railsnewfoo我的代码可以使用字符串“foo”吗?puts"Yourapp'snameis"+app_name_bar 最佳答案 Rails.application.class将为您提供应用程序的全名(例如YourAppName::Application)。从那里您可以使用Rails.application.class.parent获取模块名称。 关于ruby-on-rails-应用程序的名称是否可以作为变量使用?,我们在StackOve

  6. ruby-on-rails - 使用作为方法的值在 ruby​​ 中搜索哈希 - 2

    我在搜索我的值是方法的散列时遇到问题。我只是不想运行plan_type与键匹配的方法。defmethod(plan_type,plan,user){foo:plan_is_foo(plan,user),bar:plan_is_bar(plan,user),waa:plan_is_waa(plan,user),har:plan_is_har(user)}[plan_type]end目前如果我传入“bar”作为plan_type,所有方法都会运行,我怎么能只运行plan_is_bar方法呢? 最佳答案 这个变体怎么样?defmethod

  7. ruby - 无法在 Ruby 中将 ffmpeg 作为子进程运行 - 2

    我正在尝试使用以下代码通过将ffmpeg实用程序作为子进程运行并获取其输出并解析它来确定视频分辨率:IO.popen'ffmpeg-i'+path_to_filedo|ffmpegIO|#myparsegoeshereend...但是ffmpeg输出仍然连接到标准输出并且ffmepgIO.readlines是空的。ffmpeg实用程序是否需要一些特殊处理?或者还有其他方法可以获得ffmpeg输出吗?我在WinXP和FedoraLinux下测试了这段代码-结果是一样的。 最佳答案 要跟进mouviciel的评论,您需要使用类似pope

  8. ruby-on-rails - 向 Rails 3 添加 Ruby 扩展方法的最佳实践? - 2

    我有一个要在我的Rails3项目中使用的数组扩展方法。它应该住在哪里?我有一个应用程序/类,我最初把它放在(array_extensions.rb)中,在我的config/application.rb中我加载路径:config.autoload_paths+=%W(#{Rails.root}/应用程序/类)。但是,当我转到railsconsole时,未加载扩展。是否有一个预定义的位置可以放置我的Rails3扩展方法?或者,一种预先定义的方式来添加它们?我知道Rails有自己的数组扩展方法。我应该将我的添加到active_support/core_ext/array/conversion

  9. Ruby,使用包含 TK GUI 的 ocra 部署一个 exe - 2

    Ocra无法处理需要“tk”的应用程序require'tk'puts'nope'用奥克拉http://github.com/larsch/ocra不起作用(如链接中的一个问题所述)问题:https://github.com/larsch/ocra/issues/29(Ocra是1.9的"new"rubyscript2exe,本质上它用于将rb脚本部署为可执行文件)唯一的问题似乎是缺少tcl的DLL文件我不认为这是一个问题据我所知,问题是缺少tk的DLL文件如果它们是已知的,则可以在执行ocra时将它们包括在内有没有办法知道tk工作所需的DLL依赖项? 最佳答

  10. ruby - 如何跳过 CSV 文件的第一行并将第二行作为标题 - 2

    有没有办法跳过CSV文件的第一行,让第二行作为标题?我有一个CSV文件,第一行是日期,第二行是标题,所以我需要能够在遍历它时跳过第一行。我尝试使用slice但它会将CSV转换为数组,我真的很想将其读取为CSV,以便我可以利用header。 最佳答案 根据您的数据,您可以使用另一种方法和skip_lines-option此示例跳过所有以#开头的行require'csv'CSV.parse(DATA.read,:col_sep=>';',:headers=>true,:skip_lines=>/^#/#Markcomments!)do|

随机推荐