我读过这个问题: 我可以为 Ubuntu Phone 开发混合原生/HTML5 应用程序吗?
它有一个很好的答案,但是 Ubuntu SDK(Ubuntu 13.04)不再支持它,现在它使用:
import QtQuick 2.0
import Ubuntu.Components 0.1
import QtWebKit 3.0
并且在尝试调用WebView的“设置”时出现一些错误:
Cannot assign to non-existent property "settings"
在网上搜索后我找到了一些解决方案,但遗憾的是对我来说不起作用。
import QtQuick 2.0
import Ubuntu.Components 0.1
import QtWebKit 3.0
import QtWebKit.experimental 1.0
MainView {
// objectName for functional testing purposes (autopilot-qt5)
objectName: "mainView"
// Note! applicationName needs to match the .desktop filename
applicationName: "Gastos"
width: units.gu(100)
height: units.gu(75)
Page {
id: page
title: "HTML5 App"
Flickable {
id: webViewFlickable
anchors.fill: parent
WebView {
experimental.preferences.developerExtrasEnabled: true
experimental.preferences.javascriptEnabled: true
id: webView
anchors.fill: parent
url: "html/index.html"
onTitleChanged: {
page.title = title;
}
}
}
}
}
虽然显示了一些警告,但启动一切正常。
WARNING: This project is using the experimental QML API extensions for QtWebKit and is therefore tied to a specific QtWebKit release.
WARNING: The experimental API will change from version to version, or even be removed. You have been warned!
但是没有开发者工具。右键单击不起作用,也许我遗漏了什么?任何帮助都将不胜感激。
提前致谢
答案1
从 ubuntu-html5-theme 软件包版本 14.04.20140123-ppa2 (Trusty) 开始,可以使用--inspector
添加的参数启动 HTML5 应用程序。(这可以添加到ubuntu-html5-app-launcher
shell 中的命令中,也可以通过在 SDK 中设置运行配置来实现)。
使用该--inspector
参数,应用程序的 shell 输出将显示 IP 地址和端口。您可以在 WebKit 浏览器(例如 chromium-browser)中打开此 URL,然后您将看到一个“可检查视图”,其中包含一个 JavaScript 控制台,您可以使用它来查看警告、错误和调试。这允许您使用您可能已经熟悉的基于浏览器的 HTML 工具。
下面是从 shell 启动应用程序的示例:
$ ubuntu-html5-app-launcher --www=HTML5_APP_PROJECT_DIR --inspector
以下是包含您需要查找的 URL 的输出部分:
Inspector server started successfully. Try pointing a WebKit browser to http://192.168.1.105:9221
如上所述,您也可以配置 Ubuntu SDK 来执行相同的操作。查看“项目”>“运行设置”区域并按如下方式配置运行配置:
答案2
诀窍是使用 WebKit 的远程检查器。以下是我在 QtCreator 3.0 中使其运行的方法:
- 如果您还没有安装 Google Chrome,请下载。(我相信 Safari 也可以。)
- 在 QtCreator 中,单击左栏中的“项目”,然后单击顶部的“运行”选项卡。
- 在“运行环境”旁边,单击“详细信息”下拉菜单。
- 单击“添加”以添加新的环境变量。
- 设置变量名为QTWEBKIT_INSPECTOR_SERVER并将值设置为任何未使用的本地端口号,例如9999
- 运行项目
- 打开 Chrome 并输入以下 URL:
http://127.0.0.1:9999
可能需要一点时间才能启动。如果 URL 不起作用,您可以使用 Microsoft TCPView(在 Windows 上)等工具来确保您的进程已打开端口。
在 Qt 中启用远程检查器的技巧来自这篇文章:https://lists.webkit.org/pipermail/webkit-qt/2012-April/002646.html