У меня есть Java-приложение, которое показать местоположение пользователя с помощью jxbrowser. (мы печатаем местоположение в консоли браузера и получаем его с помощью консольного слушателя в java)
В моем getLocation.java:
public static void main(String[] args) {
final Browser browser = new Browser();
BrowserView browserView = new BrowserView(browser);
JFrame frame = new JFrame("as");
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.add(browserView, BorderLayout.CENTER);
frame.setSize(900, 500);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
browser.setPermissionHandler(new PermissionHandler() {
@Override
public PermissionStatus onRequestPermission(PermissionRequest request) {
if (request.getPermissionType() == PermissionType.GEOLOCATION) {
return PermissionStatus.GRANTED;
}
return PermissionStatus.DENIED;
}
});
browser.addConsoleListener(new ConsoleListener() {
@Override
public void onMessage(ConsoleEvent message) {
System.out.println(message.getMessage());
}
});
browser.loadURL("C://Users/aa/Desktop/Advance Java Projects/Snap/src/views/map/getlocation.html");
}
А в моем getlocation.html:
<!DOCTYPE html>
<html>
<head>
<meta name = "viewport" content = "initial-scale=1.0, user-scalable=no"/>
<style type = "text/css">
html { height: 100% }
body { height: 100%; margin: 0; padding: 0 }
</style>
</head>
<body>
<script>
getLocation()
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
console.info("poof browser!");
}
}
function showPosition(position) {
console.info(position.coords.latitude);
console.info(position.coords.longitude);
}
</script>
</body>
</html>
Но когда я запускаю мое приложение у меня нет ответа !!!!




Из-за ограничений безопасность в Chromium 50 и выше геолокация не работает для URI file:///. Вы должны разместить веб-страницу, которая работает с API геолокации, на веб-сервере и получить доступ к веб-странице через протокол HTTPS. Иначе не получится.