[英]How to display web content [the right way] on iOS and Android using QML
我想使用 Qt 5.5 在 iOS 和 Android 上开发和发布 Qt/QML 应用程序,并且我正在尝试找出一种在我的 QML 应用程序中显示简单 Web 内容(如 Facebook 登录页面)的方法。
我发现真正令人困惑的是,有多个类具有相似的名称,但并不适用于所有平台或缺少某些必需的功能。
这是我发现的选项:
http://doc.qt.io/qt-5/qml-qtwebengine-webengineview.html
http://doc.qt.io/qt-5/qml-qtwebkit-webview.html
onNavigationRequested(request)
)QQmlApplicationEngine 无法加载组件http://badkitteh.local:8888/backend/:6模块“QtWebKit”未安装
我尝试将webkit
和webkitwidgets
添加到.pro
文件中,但没有成功。 (哇?)
http://doc.qt.io/qt-5/qml-qtwebengine-webengineview.html
loadingChanged(loadRequest)
)。QtWebEngine::initialize()
()。webengine
添加到QT
。 这使它在 OS X 上构建/启动,但仍然不在 iOS 上。 哇?QQmlApplicationEngine 无法加载组件http://badkitteh.local:8888/backend/:6模块“QtWebEngine”未安装
我还没有测试 Android,但似乎QtWebView
是唯一可以跨多个平台工作而不必使用单独的 QML 文件的东西。 不幸的是,无法捕获 URL 更改/加载请求。
这令人沮丧。
如何在不使用外部库/工具等的情况下获得基于WebView
的简单社交登录,以便跨 iOS 和 Android 在应用程序中工作? 要么我在这里遗漏了一些东西,要么现在 QML/Qt 的WebView
情况真的很糟糕。 为什么有这么多选择? 为什么在 iOS 和 Android 上没有UIWebView
简单包装器?
我不知道你到底想完成什么,但 QtWebView(移动设备上的唯一选项)确实有一个 runJavaScript 函数,你可以用它来将一些 JavaScript 注入网页,然后中继 JavaScript 的结果回到回调函数(QML 函数)。 注入的 JavaScript 可以在页面中设置您想要的任何事件侦听器,或者如果您想轮询更改,您可以执行 window.setTimeout。 这有点令人费解,但您可能可以通过这种方式破解出一个解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.