你好,我在Mac OSX上面临QT的小问题。
因此,在我的程序中,我试图打开与应用程序相同路径中的本地.html
文件。
鉴于QT是跨平台,我对Windows和Ubuntu的尝试都起作用,我认为OSX不应该有问题,因为它是基于Unix的。
这是我的attmpet
void MainWindow::openBrowser(bool)
{
QString link = QDir::currentPath()+"/index.html"; // rename the file
if(! QDesktopServices::openUrl(QUrl(link.trimmed())))
{
displayMessage("Access Error", "Unable to open a file");
}
}
OSX找不到相同的index.html
文件,我不确定为什么。有没有更好的方法来加入路径?
在macOS上,QUrl
使用FQ名称(file://absolute_file.name
(进行工作,这应该是所有平台上的便携式语法。可以这样调用:
if(! QDesktopServices::openUrl(QUrl("file:" + link.trimmed()))) // windows does not like ://
{
qDebug() << "Access Error", "Unable to open a file";
}
尽管本地HTML文件不需要,但QT在Info.plist
中使用此条目用于外部URL:
<key>NSAppTransportSecurity</key>
<!-- NOTE! For more information, see: https://developer.apple.com/library/prerelease/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW33-->
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>