WebView qml 在 iOS 11 上无法正常工作
Posted
技术标签:
【中文标题】WebView qml 在 iOS 11 上无法正常工作【英文标题】:WebView qml doesn't work correctly on iOS 11 【发布时间】:2017-10-24 14:33:50 【问题描述】:我有一个问题,我需要在应用程序中打开 url,我使用了 WebView,但无法正常工作。
导入这个:
import QtWebView 1.0
我的代码:
Rectangle
width: Screen.width
height: Screen.height
color: "Orange"
anchors.fill: parent
z:9999999
WebView
id: webviewer
anchors.fill: parent
url: "http://www.google.com"
onLoadProgressChanged:
console.log(webviewer.loadProgress)
在我放入的 .pro 文件中:
QT += webview
还有我的 main.cpp
QtWebView::initialize();
我的 console.log 正在正确打印加载状态,但在屏幕上我什么也没看到。 为什么?
【问题讨论】:
刚刚添加仅供参考,在 Ubuntu 上测试,工作正常。 Qt 5.6.2 64 位。 我不能使用 QT 5.6...在 ios 11 和 qt 5.9 上没有解决方案? 能否将“import QtWebView 1.0”更改为 1.1,如果这不起作用。我不确定还有什么。由于您使用的是 Qt 5.9 并且特定于 ios 11,因此您可以以 Qt 形式发布相同的内容可能会给出最佳答案。 我已经在使用 1.1 库,也许在 ios11 苹果已经关闭了外部 webview 的可能性? 【参考方案1】:适用于iOS,解决方法是:
在 Xcode 中从 build 文件夹打开项目,并设置 App Transport Security Settings,您必须添加 Allow Arbitrary Loads 并将其设置为 YES。 现在 WebView 可以工作了。
【讨论】:
【参考方案2】:initialize() 创建 opengl 表面,在这种情况下,您必须先打开父窗口(要显示的表面),其他解决方案是注释 initialize() - 页面将显示。如果您决定在 GL 表面上显示它,请尝试设置 ALWAYSSTACKONTOP 属性以查看,如果其他窗口不覆盖 webview,则首先呈现 opengl,因此任何其他背景都可以使其不可见。您也可以打开其他可见窗口的父级 webview 类,但如果您将其全屏显示,它会闪烁一段时间
【讨论】:
以上是关于WebView qml 在 iOS 11 上无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
Webview 在 Windows 上的 mingw 中无法在 Qt Creator 中工作
QML Webview 使用 x-offset 呈现 SELECT 元素