[英]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.