1

地理位置情報の許可が webview に表示されないという問題があり、自動的に許可を与える次のコードを追加する必要がありました。

 mWebView.setWebChromeClient(new WebChromeClient() {
        @Override
            public void onGeolocationPermissionsShowPrompt(String origin, 
                                                           GeolocationPermissions.Callback callback) 
            {

                  callback.invoke(origin,true,false);
            }               
       });     
 }

すべて正常に動作します。ここで、自動許可を与えるのではなく、このコード内でカスタム ポップアップ ウィンドウを表示したいと考えています。

4

1 に答える 1

2

私の解決策は、setWebChromeClient 内に AlertDialog を作成することです。この場合、ユーザーはあなたの場所を共有するかどうかを常に確認する必要があると判断しました。

reportingView.setWebChromeClient(new WebChromeClient() {
             public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) {
                    final GeolocationPermissions.Callback callbackF = callback;
                    final String originF = origin;
                    AlertDialog.Builder builder = new AlertDialog.Builder(_context);
                    builder.setTitle("Locations");
                    builder.setMessage("MyApp want to know your location")
                    .setCancelable(true)
                    .setPositiveButton("Share location", new DialogInterface.OnClickListener() {
                       public void onClick(DialogInterface dialog, int id) {
                           callbackF.invoke(originF, true, false);
                       }
                    }).setNegativeButton("Decline", new DialogInterface.OnClickListener() {
                       public void onClick(DialogInterface dialog, int id) {
                           callbackF.invoke(originF, false, false);
                       }
                    });
                    AlertDialog alert = builder.create();
                    alert.show();
                 }
                });
于 2012-06-07T08:59:11.237 に答える