3

WinForm デスクトップ アプリケーションを有効にするために、Web ブラウザー コントロールを実装したいと考えていました。

WinForm プロジェクトに GeckoFX Web ブラウザーを正常に実装しました。問題は、HTML5 位置情報が有効な Web サイト/アドレスにアクセスしたときに、[アクセスを許可/拒否] ポップアップが表示されないことです。

その結果、ジオロケーションは機能しません。環境設定で地理位置情報が有効になっていることを確認し、 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. 現在地の共有リクエストを受け入れる方法は? 、しかし、そこからどこへ行くべきか本当にわかりません。

コントロールは単なるブラウザー ウィンドウであり、ブラウザー アプリケーションを構成するその他すべてのビット n ボブではないため、自分で呼び出しを実装する必要があると確信しています。WinForms と C# を使用して GeckoFX に地理位置情報を既に実装している人はいますか?

ありがとうアンドレ

4

0 に答える 0