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 に地理位置情報を既に実装している人はいますか?
ありがとうアンドレ