3

我想实现一个 Web 浏览器控件来启用我的 WinForm 桌面应用程序的地理位置。

我已经在我的 WinForm 项目中成功实现了 GeckoFX 网络浏览器。问题是当访问启用 HTML5 地理定位的网站/地址时,“允许/拒绝访问”弹出窗口不会出现。

因此,地理位置不起作用。我已确认在首选项中启用了地理位置,并已使用http://html5test.com测试了我的 WinForm ,并且该控件被列为支持地理位置。

我已经尝试通过 XPCom API 为特定域设置权限,以便不需要弹出请求权限:

   //CREATE nsSTRING
            nsAUTF8String i = new nsAUTF8String("http://html5demos.com");

            //CREATE NEW URI
            var nsII = Xpcom.CreateInstance<nsIIOService>("@mozilla.org/network/io-service;1");
            nsIURI uri = nsII.NewURI(i, "Unicode", null);

            //CREATE PERMISSION MANAGER
            var instancePM = Xpcom.CreateInstance<nsIPermissionManager>("@mozilla.org/permissionmanager;1");

            //GEO PERMISSION SETTINGS
            uint permission = Convert.ToUInt32(1);
            uint expiretype = Convert.ToUInt32(0);
            long expireTime = (long)0;

            //ADD GEO PERMISSION SETTINGS  (THIS SHOULD ALLOW GEO LOCATION TO JUST RUN WITH NO PROMPT)
            instancePM.Add(uri, "geo", permission, expiretype, expireTime);

            //TEST PERMISSIONS http://html5demos.com 
            uint testResult = instancePM.TestExactPermission(uri, "geo"); //RETURN SCORRECT SETTING OF 1 = OK

这确实返回了 1 的测试值,但地理位置仍然不起作用。

我已经看过这个 stackoverflow 问题: Gecko for windows forms and geolocation。如何接受分享我的位置的请求?,但不确定从那里去哪里。

我确信我需要自己实现调用,因为控件只是浏览器窗口,而不是构成浏览器应用程序的所有其他位。有没有人有任何建议或者可能已经使用 WinForms 和 C# 在 GeckoFX 中实现了地理位置?

谢谢安德烈

4

0 回答 0