QWebengineView 無法使用 Google Map APIs?



  • 大家好:
    目前想做一個關於GPS結合Qt的小專案,目前選擇Google Map作為我的地圖,在使用QWebengineView時事可以順利載入地圖的,但我無法使用 webview->page()->runjavascript() 去操作Javascript內的function 程式碼

      QUrl url("qrc:/map.html");
    
           QWebEngineSettings::globalSettings()->setAttribute(QWebEngineSettings::PluginsEnabled,true);
           QWebEngineSettings::globalSettings()->setAttribute(QWebEngineSettings::JavascriptEnabled,true);
           QWebEnginePage *page = new QWebEnginePage(this);
           QWebChannel *channel = new QWebChannel(this);
           page->load(url);
           page->setWebChannel(channel);
           ui->widget->setPage(page);
    
            QString js=QString("var marker = new google.maps.Marker({ ")+
            QString("position: new google.maps.LatLng(24.705311, -74.2581939),")+
            QString(" map: map,")+
            QString("title: \"Marker A\",")+
            QString("   }); ");
    
           ui->widget->page()->runJavaScript(js,[](const QVariant &result){ qDebug() << result.toBool(); });
    
    錯誤回報:
    js: Uncaught ReferenceError: google is not defined
    

    目前才剛接觸Qt 的Web功能和javascript,所以也不知道問題出在哪裡?
    另外有人可以提供關於webchannel的範例嗎?
    謝謝大家!!

    開發環境: 
    Ubuntu 16.04
    Qt 5.7
    

Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.