我可以为Ubuntu Phone开发混合本机/ HTML5应用程序吗?


8

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

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

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


如果您所指的不仅仅是基于QML的用户界面(塞勒姆的答案已解决),那么可以通过Apache Cordova进入本机代码的挂钩。 我仍在研究Cordova,所以我没有完整的答案,但是,是在此处阅读/下载的资源:git-wip-us.apache.org/repos/asf?p=cordova
ubuntu.git;a

Answers:


10

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

以这个简单的应用程序组成:“ app.qml”,“ app.html”和“ app.js”(是的,我知道,这个“应用程序”非常la脚...)。仅使用进行了测试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);
};

希望能帮助到你。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.