На машине Windows 10 код работает, как и ожидалось, но он не может отображать карту при запуске Windows 11, и вместо этого отображается «Извигая, у нас нет изображения». Ниже: < /p>
Код: Выделить всё
import javafx.application.Application;
import javafx.application.Platform;
import javafx.scene.Scene;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
import netscape.javascript.JSObject;
public class GoogleMaps extends Application
{
public static final void main(final String[] args)
{
Application.launch(args);
}
@Override
public final void start(final Stage stage) throws Exception
{
var webView = new WebView();
var webEngine = webView.getEngine();
webEngine.setJavaScriptEnabled(true);
webEngine.setOnAlert(event -> {
if ("inject:bridge".equals(event.getData()))
{
final var jsWindow = (JSObject)webEngine.executeScript("window");
jsWindow.setMember("javabridge", GoogleMaps.this);
webEngine.executeScript("console.log = (message) => javabridge.logConsole(message);");
}
});
Platform.runLater(() -> webEngine.load(ClassLoader.getSystemClassLoader().getResource("maps.html").toString()));
stage.setScene(new Scene(webView));
stage.show();
}
public final void logConsole(final String message)
{
System.out.println("WebView: " + message);
}
}
Код: Выделить всё
Google Maps
body {margin: 0; padding: 0;}
#canvas {width: 100%; height: 100%;}
alert("inject:bridge");
window.addEventListener('error', event => {
const {message, filename, lineno, colno, error} = event;
console.log('[Error] ' + message);
});
async function initMap()
{
console.log("Console logging is active");
const map = new google.maps.Map(document.getElementById('canvas'), {zoom: 5, center: {lat: 52.2, lng: -1.3}, mapTypeId: 'satellite'});
}
< /code>
Наконец, если кто -то хочет построить приложение, я включил свой сценарий Apache Ant: < /p>
Google Maps Test
JavaFX Library Path: ${env.PATH_TO_JAVAFX}
Подробнее здесь: https://stackoverflow.com/questions/795 ... windows-11
Мобильная версия