我有一个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.log("poof browser!");
}
}
function showPosition(position) {
console.log(position.coords.latitude);
console.log(position.coords.longitude);
}
</script>
</body>
</html>
但当我运行我的应用程序时,我没有响应!!!!
由于Chromium 50及更高版本中的安全限制,地理定位不适用于file:///
URI。您必须将使用Geolocation API的网页放在web服务器上,并通过HTTPS协议访问该网页。否则它就不会起作用。