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 回答