# Class (JsGeolocation)

> phone 12+ | 2in1 13+ | tablet 12+ | tv 19+ | wearable 18+

JsGeolocation是Web组件在收到网页地理位置权限请求时，提供给应用的授权响应对象。当网页通过JavaScript调用地理位置接口（如navigator.geolocation）请求获取设备位置信息时，应用需要决定是否授权该请求。JsGeolocation通过invoke方法允许应用对指定源的网页授予或拒绝地理位置权限，同时可选择将该权限决策保存到系统中，避免后续同一源再次请求时重复弹出授权提示。

JsGeolocation适用于Web组件中网页主动请求地理位置权限的场景。应用需先注册[onGeolocationShow事件](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/arkts-basic-components-web-events#ongeolocationshow)，当网页发起地理位置权限请求时，该事件回调会将JsGeolocation对象传递给应用，应用在回调中调用invoke方法完成授权响应。使用时还需配置"ohos.permission.LOCATION"、"ohos.permission.APPROXIMATELY_LOCATION"权限。
> 说明
>
> * 该组件从API version 8开始支持。后续版本如有新增内容，则采用上角标单独标记该内容的起始版本。
>
> * 本Class从API version 8开始支持。
>
> * 示例效果请以真机运行为准。

## constructor

> phone 12+ | 2in1 13+ | tablet 12+ | tv 19+ | wearable 18+

constructor()

JsGeolocation的构造函数。构造函数本身不直接被应用调用，通常通过[onGeolocationShow事件](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/arkts-basic-components-web-events#ongeolocationshow)回调获取JsGeolocation实例。

**系统能力：** SystemCapability.Web.Webview.Core

## invoke

> phone 12+ | 2in1 13+ | tablet 12+ | tv 19+ | wearable 18+

invoke(origin: string, allow: boolean, retain: boolean): void

设置网页地理位置权限状态。该方法需在[onGeolocationShow事件](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/arkts-basic-components-web-events#ongeolocationshow)回调中调用，用于对发起地理位置权限请求的网页进行授权响应。

**系统能力：** SystemCapability.Web.Webview.Core

**参数：**

|参数名|类型|必填|说明|
|:-----|:------|:-|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|origin|string|是|发起地理位置权限请求的网页源，用于标识特定网站的地理位置请求来源。 origin格式必须遵循RFC 6454中定义的格式。|
|allow|boolean|是|设置的地理位置权限状态。 true表示开启地理位置权限，false表示不开启地理位置权限。|
|retain|boolean|是|是否允许将地理位置权限状态保存到系统中。可通过[GeolocationPermissions](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/arkts-apis-webview-geolocationpermissions)接口管理保存到系统的地理位置权限。 true表示保存地理位置权限状态到系统，false表示不保存到系统。|

