@appandflow/react-native-google-autocomplete

中文文档
2.2.0发布于 2026/02/16MITTypeScriptESM + CJS近 30 天下载 1.3万

帮助您使用 google 设置自动完成的库

中文使用文档
文档目录7 节
  1. 关于
  2. 安装
  3. 使用量
  4. 结果
  5. 键入
  6. 自定义信头
  7. 国家限制

google_autocomplete

关于

App & Flow是一个基于蒙特利尔的React Introduction工程和咨询工作室. 我们与世界顶尖公司合作,并被推荐 博览需要帮忙吗? 让我们一起建设. 团队@appandflow.com

安装

yarn add @appandflow/react-native-google-autocomplete
npm i @appandflow/react-native-google-autocomplete

使用量

这个 useGoogleAutocomplete 钩子需要两个参数

参数说明
键您的谷歌放置了 api 键
配置可选配置对象

配置对象

财产说明
弹跳可选 - 默认 300
退出选项选项 - 解开行为的配置选项.
语言选项 - 默认“ en”
查询类型选项 - 默认地址 - https://developers.google.com/places/web-service/autocomplete#place types (中文(简体) )
分钟选项 - 默认 2 - 这是开始前术语搜索的分钟长度
组件选项 - 一组您想要限制您结果的地方
半径可选 - 返回地点结果的距离(米)
号可选 - 纬度。 如果提供,则需要印章
猪可选 - 经度。 如果提供,则需要拉特
严格边界可选 -- -- 返回地点仅限于按地点和半径界定的区域.
来源选项 - 源点为 {lat, Ing } 从该点计算到目的地的直线距离( 返回为距离 公尺)
代理用户选项 - 如果您想要在基于 Web 的平台上使用钩子,则需要此选项 。 由于我们不使用Google SDK,除非提供代理Url,否则http调用将因与CORS有关的问题而失败
页眉可选 - 自定义标题包含在 Google Places API 请求中。 用于通过特定平台的 API 限制, 如 X-Android-Package, (中文(简体) ), X-Android-Cert,或 X-Ios-Bundle-Identifier。 。 。 .

已曝光属性

财产说明
清除搜索清除当前搜索
轮廓布尔,让你知道搜索正在进行
地点搜索结果阵列
搜索细节函数可以让您获得更多细节, 有利于您选择结果
搜索错误搜索过程中可能发生的错误
术语/设置这个术语是使用的搜索术语,它使用 setTerm

代码示例

这是一个最小函数片段, 它返回 3 个结果用于您的搜索 . 点击结果记录结果的细节.

  const { locationResults, setTerm, clearSearch, searchDetails, term } =
    useGoogleAutocomplete(API_KEY, {
      language: 'en',
      debounce: 300,
    });

  return (
    <View>
      <TextInput
        value={term}
        onChangeText={setTerm}
      />
      {locationResults.slice(0, 3).map((el, i) => (
        <TouchableOpacity
          key={String(i)}
          onPress={async () => {
            const details = await searchDetails(el.place_id);
            console.log(JSON.stringify(details, null, 2));
          }}
        >
          <Text>{el.structured_formatting.main_text}</Text>
        </TouchableOpacity>
      ))}
    </View>
  );

结果

locationResults 返回以下内容。 Google设定的最大结果是5个通过查询的位置.

export interface GoogleLocationResult {
  description: string;
  id: string;
  matched_substrings: Array<{
    length: number;
    offset: number;
  }>;
  place_id: string;
  reference: string;
  structured_formatting: {
    main_text: string;
    secondary_text: string;
    main_text_matched_substrings: Array<{
      length: number;
    }>;
  };
  terms: Array<{
    offset: number;
    value: string;
  }>;
  types: string[];
  distance_meters?: number; // Present when origin parameter is provided
}

当呼叫搜索时,详情如下:

export interface GoogleLocationDetailResult {
  adr_address: string;
  formatted_address: string;
  icon: string;
  id: string;
  name: string;
  place_id: string;
  scope: string;
  reference: string;
  url: string;
  utc_offset: number;
  vicinity: string;
  types: string[];
  geometry: {
    location: {
      lat: number;
      lng: number;
    };
    viewport: {
      [type: string]: {
        lat: number;
        lng: number;
      };
    };
  };
  address_components: Array<{
    long_name: string;
    short_name: string;
    types: string[];
  }>;
}

键入

如果您需要流量或打字符, 可以导入两种结果键入 .

import {
  GoogleLocationDetailResult,
  GoogleLocationResult,
} from 'react-native-google-autocomplete';

自定义信头

您可以将自定义信头传递给 Google Places API 请求。 这对 应用限制 例如Android应用或iOS捆绑限制.

// Android
const { locationResults, setTerm } = useGoogleAutocomplete(API_KEY, {
  headers: {
    'X-Android-Package': 'com.example.app',
    'X-Android-Cert': 'your-signing-certificate-fingerprint',
  },
});

// iOS
const { locationResults, setTerm } = useGoogleAutocomplete(API_KEY, {
  headers: {
    'X-Ios-Bundle-Identifier': 'com.example.app',
  },
});

国家限制

如果您想要限制国家搜索, 您可以将此添加为道具 components="country:ca"这里仅举加拿大为例.

版本与发布记录

@appandflow/react-native-google-autocomplete 共发布 11 个版本,首次发布于 2024/07/11;过去 12 个月发布了 3 个版本。

版本发布日期距今
2.2.0latest2026/02/168 个月前
2.1.22026/01/319 个月前
2.1.12026/01/309 个月前
2.1.02025/03/011.7 年前
2.0.22024/11/251.9 年前
2.0.12024/07/232 年前

其他发布通道:beta → 2.0.0-beta.3。

关于 @appandflow/react-native-google-autocomplete 的常见问题

@appandflow/react-native-google-autocomplete 是什么?

帮助您使用 google 设置自动完成的库

如何安装 @appandflow/react-native-google-autocomplete?

在项目目录运行 npm install @appandflow/react-native-google-autocomplete,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(*)、react-native(*)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@appandflow/react-native-google-autocomplete 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@appandflow/react-native-google-autocomplete 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@appandflow/react-native-google-autocomplete 可以商用吗?

@appandflow/react-native-google-autocomplete 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@appandflow/react-native-google-autocomplete 的下载量有多少?

根据 npm 官方下载统计,@appandflow/react-native-google-autocomplete 在 2026/10/07 – 2026/11/05 这 30 天内被下载 12,671 次,日均约 422 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@appandflow/react-native-google-autocomplete 还在维护吗?

最新版本 2.2.0 发布于 2026/02/16(8 个月前);至今共发布 11 个版本,其中过去 12 个月发布了 3 个;首次发布于 2024/07/11。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。