我正在尝试创建一些用于 Firefox 的 Web 应用程序。我从 Canonical 获得了一个教程 (http://developer.ubuntu.com/resources/app-developer-cookbook/unity/integrating-tumblr-to-your-desktop/) 有一件事我不明白,也许有人可以帮助我。
我必须在 Web 控制台中运行以下脚本:
// ==UserScript==
// @name tumblr-unity-integration
// @include https://tumblr.com/dashboard
// @version @VERSION@
// @author WebApps Team
// @require utils.js
// ==/UserScript==
window.Unity = external.getUnityObject(1.0);
Unity.init({ name: "Tumblr",
iconUrl: "icon://Tumblr",
onInit: null });
一切都很好,它创建了图标启动器并可以使用 alt+tab。现在对我来说已经足够了,但是,如果我关闭窗口,我之前创建的启动器图标将停止工作(我的意思是,它会打开网站,但不能像其他 webapp 那样工作,也不会在 alt+tab 中显示)。也许我每次进入该网站时都必须自动运行此脚本(在此示例中为 Tumblr)。我该怎么做?
谢谢,
答案1
是的,你说得对。你需要再次执行该操作。
基本上,Web 应用程序是用户脚本每次你进入一个确定的网站时都会执行这些操作(在你的情况下,https://tumblr.com/dashboard),然后在 Unity 桌面上提供网站集成。
因此,如果您想使其“永久”(每次进入网站时都执行该代码),您可以在网站上包含该 js(如果您拥有它)或使用类似GreaseMonkey或者坦普尔猴子将该脚本包含在您无法控制的网站上。
当然,您也可以创建一个包:unity-webapps-youtube
例如参见源代码。
答案2
以下是如何“正确”地将脚本集成到 Ubuntu 中,而无需制作安装包。我在每个阶段都包括终端命令来执行我所描述的操作。为了通用性,我假设您正在集成一个名为“Mysite”的应用程序。(我在这里给出的说明比 op 可能需要的更明确,但我想确保它对那些 Linux 经验较少的人有用。)
在 /usr/share/unity-webapps/userscripts/ 目录下为您的应用创建一个子文件夹。为了保持一致性,最好将您的文件夹命名为 unity-webapps-。
cd /usr/share/unity-webapps/userscripts
sudo mkdir unity-webapps-mysite将您的集成脚本(带有 user.js 扩展名)移动到您刚刚创建的目录:
sudo mv ~/somefolder/Mysite.user.js /usr/share/unity-webapps/userscripts/unity-webapps-mysite/
在同一目录中创建一个名为 manifest.json 的新文件:
cd /usr/share/unity-webapps/userscripts/unity-webapps-mysite sudo touch manifest.json
在您最喜欢的文本编辑器中打开该 manifest.json 文件:
sudo nano 清单.json
将 Web 应用集成所需的元数据添加到该空文件中。此元数据应基于集成脚本的开头注释部分。以下是 Mysite 脚本的基本样板清单文件:
{"包括":["https://mysite.com/“,”http://mysite.com/"],
"requires":["utils.js"],
"name":"我的网站",
"scripts":["我的网站.user.js"],
"maintainer":"我",
"manifest-version":"1.0",
"integration-version":"1.0",
"package-name":"我的网站",
"icons":{"128":"128/unity-webapps-mysite.png",
"48":"48/unity-webapps-mysite.png", "52":"52/unity-webapps-mysite.png", "64":"64/unity-webapps-mysite.png"}, "domain":"mysite.com",
"homepage":"https://mysite.com/",
"许可证":"GPL-3"}为您的应用创建一个至少 128px x 128px 的方形图标,并制作调整大小的副本,分别为 64x64、52x52 和 48x48。(我只使用 gThumb 图像查看器来实现这一点。GIMP 也可以。)您需要提供所有文件同名(unity-webapps-mysite.png)因此您可能需要为每个文件创建单独的文件夹,分别命名为“128”,“64”,“52”和“48”,以保持文件的整齐。
将这些图像文件复制到目录 /usr/share/icons/unity-webapps-applications/apps 的相应子文件夹中。如果您已安装 webapps 包,则这些子文件夹应该已经存在。
sudo mv ~/somefolder/128/unity-webapps-mysite.png /usr/share/icons/unity-webapps-applications/apps/128/
sudo mv ~/somefolder/64/unity-webapps-mysite.png /usr/share/icons/unity-webapps-applications/apps/64/
sudo mv ~/somefolder/52/unity-webapps-mysite.png /usr/share/icons/unity-webapps-applications/apps/52/
sudo mv ~/somefolder/48/unity-webapps-mysite.png /usr/share/icons/unity-webapps-applications/apps/48/
您的 Web 应用现在应该已集成到 Unity 中!您应该能够通过搜索 Unity 仪表板的应用程序镜头找到它,然后(如果您愿意)将其固定到您的 Unity 启动器。图标可能不会立即被拾取,但在这种情况下,只需注销并再次登录即可。您的 Web 应用现在应该以其标志性的荣耀出现。
我不知道官方 unity-webapps-applications 软件包的更新是否会删除这些文件,所以我正在研究如何将脚本打包为 .deb 并安装它。但我对这部分不太清楚。无论如何,您都需要确保备份主文件夹中的所有内容,以防万一。