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

我能开发一个在Ubuntu手机上与原生API和HTML5一起使用的混合应用吗?

我知道可以开发原生应用或HTML5应用。

然而,我想知道如何在Ubuntu手机上开发一个具有HTML5用户界面(混合)的原生应用。


如果您所指的不仅仅是QML基础用户界面,Salem的回答已经解决了这个问题,通过Apache Cordova可以与原生代码进行连接。 我目前还在学习Cordova,所以对于您来说,我没有完整的答案,但是在这里可以阅读/下载源代码:https://git-wip-us.apache.org/repos/asf?p=cordova-ubuntu.git;a=tree - OYRM
1个回答

我不确定你对“混合”一词的理解是什么(一个显示网页应用的C++应用程序?在C++/QML/javascript之间分发应用程序代码?),但你可以使用WebView组件在qml应用程序中显示网页/网页应用程序。这在Ubuntu手机上也应该可以工作。
拿这个简单的应用程序为例,由“app.qml”,“app.html”和“app.js”组成(是的,我知道,这个“应用程序”相当无聊...)。这只是通过qmlviewer进行了测试,所以如果你尝试通过IDE运行它,可能需要修改一些关于相对路径的内容。

app.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
        }
}

app.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>

app.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);
};

希望能有所帮助。