无法在 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 中设置地理定位权限的主要内容,如果未能解决你的问题,请参考以下文章

如何在ArcMap中设置地理坐标系和投影坐标系

如何在ArcMap中设置地理坐标系和投影坐标系

JavaScript/jQuery:在 CodePen 中设置 IP 地理定位 API

Windows系统中设置默认路由的作用是啥?

如何在smartform中设置行间距

如何在默认导航一个 Geopoint 中设置用户当前位置?