QML Qt openUrlExternally

10

我刚刚发现使用这段代码时出现了奇怪的行为

Qt.openUrlExternally(someurl); 
我想让我的用户打开Facebook分享链接,但我不能使用这段代码,因为它什么也没做。
在S60 5th和Symbian^3设备上测试过(C5、C7、5230、N8)。
所以请告诉我(如果你知道的话) 1)这个组件/行为是否有任何BUG?(我进行了搜索,没有找到任何东西) 2)如何使C++组件做同样的事情?(如果这是解决方案)
谢谢 编辑 我找到了一个创建带有QML可访问方法的C++组件的示例,就在这里: http://doc.qt.io/qt-4.8/qt-declarative-cppextensions-referenceexamples-methods-example.html 最终编辑 讨论导致了一个错误报告,可以在这里找到: https://bugreports.qt.io/browse/QTBUG-19201 谢谢大家。

Marek,我在自己的代码中遇到了这个问题,“Qt.openUrlExternally”似乎无法处理任何包含“?”或“&”的URL。你有没有找到实际的解决方案? - funkybro
@funkybro:我使用带有?&的调用没有问题,就像这样Qt.openUrlExternally(voucher_link+"?voucher=pdf");,所以你的问题必须是由其他原因引起的。尝试为你的问题创建单独的线程,你会看到结果。 - Marek Sebera
2个回答

15

Qt.openUrlExternally("http://www.stackoverflow.com/");会打开本机浏览器。

我发现唯一的问题是,如果手机上的浏览器已经在后台运行,它将不会被带入前台,因此看起来好像没有任何效果。


谢谢,但看起来是Qt/QML平台上的一些bug。最有可能是这个:http://bugreports.qt.nokia.com/browse/QTBUG-8336 - Marek Sebera
那个链接已经失效了。请访问:http://bugreports.qt-project.org/browse/QTBUG-8336。 - rene

6
尝试将以下内容添加到您的 .pro 文件中:
# Needed for bringing browser from background to foreground using QDesktopServices: https://bugreports.qt.io/browse/QTBUG-8336
TARGET.CAPABILITY += SwEvent

它应该将浏览器带到前台。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接