Android中的webview可以访问地理位置吗?

时间:2014-01-17 21:11:32

标签: android html5 webview geolocation

根据我开发应用程序的要求,我们需要访问用户的地理位置。我们构建了一个基于Html 5的网站,并在webview中调用该网站URL来开发我们的移动应用程序。使用HTML5中的最新地理标记,我们可以访问网站中用户的地理位置。从Web视图调用时,仍然可以访问Geo位置吗?如果我错了,请纠正我。

1 个答案:

答案 0 :(得分:0)

是的,但您需要使用WebChromeClient自行实现位置对话框功能。这是一个简单的例子:

webView.setWebChromeClient( new WebChromeClient() {

    @Override
    public void onGeolocationPermissionsShowPrompt( String origin, GeolocationPermissions.Callback callback ) {

        AlertDialog.Builder builder = new AlertDialog.Builder( context );

        builder.setMessage( origin + " would like to use your current location" );
        builder.setNegativeButton( "Don't Allow", new DialogInterface.OnClickListener() {

            @Override
            public void onClick( DialogInterface dialog, int which ) {

                callback.invoke( origin, false, false );
                dialog.dismiss();
            }
        } );
        builder.setPositiveButton( "Okay", new DialogInterface.OnClickListener() {

            @Override
            public void onClick( DialogInterface dialog, int which ) {

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

如果您不想向用户显示权限对话框,则可以直接调用callback.invoke(origin, true, false )。我不建议这样做(因为您的网站将在未经他们同意的情况下使用用户的位置)。