随着移动互联网的日益普及,移动应用程序正在成为我们日常生活中不可或缺的一部分,并提供越来越多样化的功能,为用户带来诸多好处。其中一项功能是在应用程序中搜索兴趣点 (POI) 或地点,例如银行和餐馆。
当用户在应用程序中搜索 POI 时,除了有关 POI 的一般信息(例如名称和位置)外,他们还希望看到其他相关详细信息。例如,在打车 App 中搜索 POI 时,用户通常希望 App 显示搜索到的 POI 和附近的其他 POI,以便用户选择最方便的接送点。在移动银行应用程序中搜索银行分行时,用户通常希望应用程序同时显示搜索到的银行分行和附近类似类型的 POI 及其详细信息,例如营业时间、电话号码和附近道路。
然而,在应用程序中显示 POI 详细信息对于非地图相关应用程序的开发人员来说通常是一个挑战,因为它需要大量详细的 POI 数据,而这对于大多数应用程序开发人员来说通常很难收集。那么,如果有一种服务可以让用户在搜索不同类型的 POI(如酒店、餐厅和景点)在应用程序中?
幸运的是,HMS Core Site Kit 提供一站式 POI 搜索服务,在全球 200 多个国家和地区拥有超过 2.6 亿个 POI。此外,该服务支持 70 多种语言,使用户能够以自己的母语搜索地点。地点详细搜索工具包中的功能允许应用程序根据 POI 的唯一 ID 获取有关 POI 的信息,例如名称、地址和经纬度。例如,用户可以在手机银行APP中搜索附近的银行分行,查看各个分行的营业时间、电话等信息,或者搜索景区的位置,查看附近的酒店、天气等信息借助地点详细搜索功能,可以在旅行应用程序中进行预测。地点详细搜索功能甚至可以被基于位置的游戏使用,当玩家在游戏中搜索 POI 时,可以使用该功能显示游戏内任务和其他玩家在 POI 处的排名。
该套件的集成过程很简单,我将在下面进行演示。
下面的截图可以让你对地点详情搜索功能有个印象。
在开始之前,您需要做一些准备工作,例如在AppGallery Connect中配置您的应用信息、集成Site SDK、配置混淆配置文件。
如果您使用 Android Studio,您可以通过 Maven 存储库将 SDK 集成到您的项目中。配置混淆配置文件的目的是为了防止SDK被混淆。
您可以按照此处的说明进行相关准备工作。在本文中,我不会描述准备步骤。
做好相关准备后,需要实现地点详情搜索功能,获取POI详情。过程如下:
1. 声明一个SearchService对象,并使用SearchServiceFactory实例化该对象。
创建SearchService对象时,需要传递Context参数和 API 密钥。如果想在HMS Core(APK)需要更新时显示更新向导,建议传递Activity类型的Context参数。API key是在华为开发者联盟创建应用时生成的。请注意,您需要使用URLEncoder.encode(" Your apiKey ", "UTF-8")方法对 API 密钥进行编码。
2. 创建一个DetailSearchRequest对象并设置相关参数。
该对象将用作搜索 POI 详细信息的请求正文。相关参数如下:
3. 创建一个SearchResultListener对象来监听搜索结果。
4、使用创建的SearchService对象调用detailSearch()方法,将创建的DetailSearchRequest和SearchResultListener对象传递给该方法。
5.使用创建的SearchResultListener对象获取DetailSearchResponse对象。您可以从DetailSearchResponse对象中获取一个Site对象,然后对其进行解析以获取搜索结果。
示例代码如下:
// Declare a SearchService object.private SearchService searchService; // Create a SearchService instance. searchService = SearchServiceFactory.create(this, "API key");// Create a request body.DetailSearchRequest request = new DetailSearchRequest(); request.setSiteId("C2B922CC4651907A1C463127836D3957"); request.setLanguage("fr"); request.setChildren(false);// Create a search result listener.SearchResultListener resultListener = new SearchResultListener() { // Return the search result when the search is successful. @Override public void onSearchResult(DetailSearchResponse result) { Site site; if (result == null || (site = result.getSite()) == null) { return; } Log.i("TAG", String.format("siteId: '%s', name: %s\r
", site.getSiteId(), site.getName())); } // Return the result code and description when a search exception occurs. @Override public void onSearchError(SearchStatus status) { Log.i("TAG", "Error : " + status.getErrorCode() + " " + status.getErrorMessage()); } }; // Call the place detail search API.searchService.detailSearch(request, resultListener);
您现在已经完成了集成过程,您的应用程序应该能够向用户显示他们搜索的 POI 的详细信息。
移动应用程序现在已成为我们日常生活中不可或缺的一部分。为了提升用户体验,为用户提供更便捷的体验,移动应用正在提供越来越多的POI搜索等功能。
在应用程序中搜索 POI 时,除了 POI 的名称和位置等一般信息外,用户通常还希望看到其他与上下文相关的信息,例如营业时间和附近的类似 POI。然而,在应用程序中显示 POI 详细信息对于非地图相关应用程序的开发人员来说可能具有挑战性,因为它需要大量详细的 POI 数据,而这些数据对于大多数应用程序开发人员来说通常很难收集。
在本文中,我演示了如何使用地点详细信息搜索功能解决这一挑战,该功能允许我的应用程序向用户显示 POI 详细信息。整个集成过程简单且经济高效,是向用户展示 POI 详细信息的有效方式。
留言与评论(共有 0 条评论) “” |