无法在 jxbrowser-java 中设置地理定位权限
Posted
技术标签:
【中文标题】无法在 jxbrowser-java 中设置地理定位权限【英文标题】:can not set gelocation permission in jxbrowser- java 【发布时间】:2018-07-20 12:11:22 【问题描述】:我有一个 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>
但是当我运行 我的应用程序时我没有响应!!!!
【问题讨论】:
【参考方案1】:由于 Chromium 50 及更高版本中的 security 限制,地理定位不适用于 file:///
URI。您必须将与 Geolocation API 配合使用的网页放在 Web 服务器上,并通过 HTTPS 协议访问该网页。否则将无法正常工作。
【讨论】:
以上是关于无法在 jxbrowser-java 中设置地理定位权限的主要内容,如果未能解决你的问题,请参考以下文章