Приложению QWebEngineView не удается загрузить API Карт Google с помощью js: Uncaught (в обещании). Ошибка: API JavaScriC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Гость
 Приложению QWebEngineView не удается загрузить API Карт Google с помощью js: Uncaught (в обещании). Ошибка: API JavaScri

Сообщение Гость »


У меня есть приложение, которое отображает Карты Google в QWebEngineView. Приложение отлично работает в Windows, но мне пока не удалось заставить его работать в Ubuntu или MacOS. Чтобы сузить проблему, я изменил пример карты Qt, чтобы дублировать ошибку. Это тестовое приложение было скомпилировано на Qt версии 6.4.1. Компилятор GCC++ – версия 11.04.

maps.pro:

ШАБЛОН = приложение QT += виджеты webenginewidgets ЗАГОЛОВКИ += \ mainwindow.h ИСТОЧНИКИ += main.cpp \ mainwindow.cpp CONFIG+=use_gold_linker target.path = $$[QT_INSTALL_EXAMPLES]/webenginewidgets/maps УСТАНАВЛИВАЕТ += цель main.cpp

// Copyright (C) 2017 The Qt Company Ltd. // Идентификатор лицензии SPDX: LicenseRef-Qt-Commercial ИЛИ BSD-3-Clause #include "mainwindow.h" #include int main(int argc, char *argv[]) { QCoreApplication::setOrganizationName("QtExamples"); Приложение QApplication (argc, argv); Главное окно mainWindow.resize(1024, 768); ГлавноеОкно.шоу(); вернуть приложение.exec(); } mainwindow.h

// Copyright (C) 2017 The Qt Company Ltd. // Идентификатор лицензии SPDX: LicenseRef-Qt-Commercial ИЛИ BSD-3-Clause #ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include класс MainWindow: общедоступный QMainWindow { Q_OBJECT публика: явный MainWindow(QWidget *parent = nullptr); частный: QWebEngineView *m_view; }; #endif // MAINWINDOW_H mainwindow.cpp

// Copyright (C) 2017 The Qt Company Ltd. // Идентификатор лицензии SPDX: LicenseRef-Qt-Commercial ИЛИ BSD-3-Clause #include "mainwindow.h" #include #include MainWindow::MainWindow(QWidget *parent) : QMainWindow(родительский) , m_view(новый QWebEngineView(это)) { setCentralWidget (m_view); QWebEnginePage *page = m_view->page(); QFileInfo info(QDir::currentPath() + QDir::separator() + "test.htm"); если (информация.существует()) страница->load(QUrl::fromLocalFile(info.filePath())); //page->load(QUrl("https://googlemaps.com")); } apikey.js // содержит действительный ключ API

var apikey2 = "APIKEY"; // API-ключ 3 console.log("Ключи API загружены"); test.htm //html-файл, загруженный mainwindow.cpp:

HTML {высота: 100%; } тело { высота: 100%; маржа: 0; отступ: 0 } #map { высота: 100%; } .меню { ширина: 160 пикселей; box-shadow: 3px 3px 5px #888888; стиль границы: сплошной; ширина границы: 1 пиксель; цвет границы: серый; радиус границы: 2 пикселя; цвет фона: #ffff; положение: фиксированное; выравнивание текста: по центру; дисплей: нет; } .пункт меню { высота: 20 пикселей; цвет фона: белый; } Простая карта const процесс = {env: {}}; процесс.env.GOOGLE_MAPS_API_KEY = апикей2; (g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window ;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=() =>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+" ");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set ("обратный вызов",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f ;a.onerror=()=>h=n(Ошибка(p+" не удалось загрузить."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m. head.append(a)}));d[l]?console.warn(p+" загружается только один раз. Игнорирование:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n) )}) ({key: apikey2, v: "еженедельно"}); test_index.js // модуль JavaScript

let map; //google.maps.Карта; асинхронная функция initMap() { const {Карта} = ждут google.maps.importLibrary("карты"); карта = новая карта(document.getElementById("карта"), { центр: {широта: -34,397, долгота: 150,644}, масштаб: 8, }); console.log("initMap выполнен"); } инициализация(); //экспортировать {}; При запуске программы появляется пустой экран и следующие ошибки:
19:15:35: Отладка /home/allen/Projects/build-maps-Desktop_Qt_6_4_1_GCC_64bit-Debug/maps ... qt.webenginecontext: Тип GL: настольный Тип поверхности: OpenGL Профиль поверхности: Профиль совместимости Поверхностная версия: 4.3 Серверная часть QSG RHI: OpenGL Использование поддерживаемого бэкэнда QSG: да Использование программного обеспечения Dynamic GL: нет Использование многопоточного OpenGL: да Параметры инициализации: * карты имен приложений * путь-подпроцесса браузера /home/allen/Qt/6.4.1/gcc_64/libexec/QtWebEngineProcess * создать-по умолчанию-gl-контекст * отключить функции ConsolidatedMovementXY,InstalledApp,BackgroundFetch,WebOTP,WebPayments,WebUSB,PictureInPicture * отключить-setuid-песочница * отключить-речевой-API * включить функции NetworkServiceInProcess,TracingServiceInProcess * включить поточный композитинг * внутрипроцессный графический процессор * использовать рабочий стол-gl js: Uncaught (обещано) Ошибка: не удалось загрузить API JavaScript Карт Google. 23:38:02: Отладка /home/allen/Projects/build-maps-Desktop_Qt_6_4_1_GCC_64bit-Debug/maps завершилась с кодом выхода 0.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»