Откройте локальный файл HTML из кода в Qt на Mac OSx

Здравствуйте, у меня небольшая проблема с Qt на Mac OSX.

Так что в моей программе я пытаюсь открыть местный .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 файл, и я не уверен, почему. Есть ли лучший способ объединить путь?

1 ответ

Решение

На 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>
Другие вопросы по тегам