# uni.openLocation(options)

注意

  • App端需 HBuilderX 4.41+
  • App端的 openlocation 是一个独立的UTS插件,以满足自定义需求,请前往插件市场导入插件 uni-openlocation 插件地址
  • 在使用 uni-openlocation 插件后,无论是在Web端还是App端,通过 uni.openlocation 打开的页面会以 dialogPage 的形式呈现。此时,当你执行 getDialogPages 方法时,会发现由 openlocation 打开的页面也包含在返回的页面数组中,这属于正常现象

使用地图查看位置

# openLocation 兼容性

Web 微信小程序 Android iOS
4.0 4.41 4.41 4.41

# 参数

名称 类型 必填 默认值 兼容性 描述
options OpenLocationOptions - - uni.openLocation
名称 类型 必备 默认值 兼容性 描述
latitude number -
纬度,范围为-90~90,负数表示南纬
longitude number -
经度,范围为-180~180,负数表示西经
scale number -
缩放比例,范围5~18,默认为18
name string -
位置名称
address string -
地址的详细说明
success (res: OpenLocationSuccess) => void -
uni.openLocation成功回调函数定义
fail (res: IOpenLocationError) => void -
uni.openLocation失败回调函数定义
complete (res: any) => void -
uni.openLocation完成回调函数定义

# OpenLocationSuccess 的属性值

名称 类型 必备 默认值 兼容性 描述
errMsg string -
错误信息

# IOpenLocationError 的属性值

名称 类型 必备 默认值 兼容性 描述
errCode number - - -
errMsg string -
错误信息
errSubject string - - 统一错误主题(模块)名称
data any - - 错误信息中包含的数据
cause Error - - 源错误信息,可以包含多个错误,详见SourceError

# 示例

hello uni-app x

扫码体验(手机浏览器跳转到App直达页)

Template

Script

<template>
  <view>
    <page-head :title="title"></page-head>
    <view class="uni-common-mt">
      <form @submit="openLocation">
        <view class="uni-list">
          <view class="uni-list-cell">
            <view class="uni-list-cell-left">
              <view class="uni-label">经度</view>
            </view>
            <view class="uni-list-cell-db">
              <input v-model.number="longitude" class="uni-input" type="text" :disabled="true" />
            </view>
          </view>
          <view class="uni-list-cell">
            <view class="uni-list-cell-left">
              <view class="uni-label">纬度</view>
            </view>
            <view class="uni-list-cell-db">
              <input v-model.number="latitude" class="uni-input" type="text" :disabled="true" />
            </view>
          </view>
          <view class="uni-list-cell">
            <view class="uni-list-cell-left">
              <view class="uni-label">位置名称</view>
            </view>
            <view class="uni-list-cell-db">
              <input v-model="name" class="uni-input" type="text" :disabled="true" />
            </view>
          </view>
          <view class="uni-list-cell">
            <view class="uni-list-cell-left">
              <view class="uni-label">详细位置</view>
            </view>
            <view class="uni-list-cell-db">
              <input v-model="address" class="uni-input" type="text" :disabled="true" />
            </view>
          </view>
        </view>
        <view class="uni-padding-wrap">
          <view class="tips">注意:需要正确配置地图服务商的Key才能正常显示位置</view>
          <view class="uni-btn-v uni-common-mt">
            <button type="primary" formType="submit">查看位置</button>
          </view>
        </view>
      </form>
    </view>
  </view>
</template>


<style>
  .uni-list-cell-left {
    padding: 0 30rpx;
  }

  .tips {
    font-size: 12px;
    margin-top: 15px;
    opacity: .8;
  }
</style>

# 参见