我可以为 Ubuntu 手机开发一个混合原生/HTML5 应用程序吗?

use*_*335 8 html5 application-development ubuntu-sdk ubuntu-touch

我可以在 Ubuntu 手机中开发一个与原生 API 和 HTML5 结合使用的混合应用程序吗?

我知道可以开发本机应用程序或 HTML5 应用程序。

但是,我想知道在 Ubuntu Phone 中开发一个具有 HTML5 UI(混合)的本机应用程序。

Sal*_*lem 10

我不确定“混合”是什么意思(显示 webapp 的 C++ 应用程序?在 C++/QML/javascript 之间分发应用程序代码?),但您可以使用 WebView 组件在 qml 应用程序上显示网页/webapp . 这也应该适用于 Ubuntu Phone。

拿这个由“app.qml”、“app.html”和“app.js”组成的简单应用程序(是的,我知道,这个“应用程序”很蹩脚……)。这仅使用 进行了测试qmlviewer,因此如果您尝试通过 IDE 运行它,您可能需要修改有关使用的相对路径的内容。

应用程序.qml

import QtQuick 1.0
import QtWebKit 1.0

Rectangle {
        width: 800
        height: 600
        WebView {
                url: "app.html"
                anchors.fill: parent
                preferredWidth: 800
                preferredHeight: 600
                smooth: false
                settings.developerExtrasEnabled : true 
                settings.javascriptEnabled: true
        }
}
Run Code Online (Sandbox Code Playgroud)

应用程序.html

<!doctype html>
<html lang="en">
<head>
        <meta charset="UTF-8">
        <title>Hi</title>
        <style>
        body {
                margin: 20px;
        }
        </style>
</head>
<body>
        <a href="#" id="test_me">Click me!</a>
</body>
<script src="app.js"></script>
</html>
Run Code Online (Sandbox Code Playgroud)

应用程序.js

var x = document.getElementById("test_me");
x.onclick = function(){
        console.log("Hi there");
        new_elem = document.createElement("h2");
        new_elem.textContent = "Hi there!";
        document.getElementsByTagName("body")[0].appendChild(new_elem);
};
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你。