REACT NATIVE | HMS 사이트 키트 설치 및 사용 방법
                                            
                                                
                                                
                                                
                                                
                                                
                                                 8498 단어  reactnativehms
                    
안녕하세요.본고에서 화웨이 모바일 서비스(HMS)가 react native에 대한 사이트 패키지 플러그인을 살펴보겠습니다.HMS 사이트 키트를 설치하고 사용하는 방법에 대해 설명합니다.
HMS 사이트 키트는 다음과 같은 기능을 제공합니다.
키워드 검색: 사용자가 입력한 키워드에 따라 위치 목록을 되돌려줍니다.
근처 검색: 사용자 장치의 현재 위치에 따라 근처 위치를 검색합니다.
사이트 세부 정보: 사이트에 대한 세부 정보를 검색합니다.
사이트 검색 제안: 사이트 제안 목록으로 돌아갑니다.
우리가 시작하기 전에 화웨이 개발자 계정을 가지고 있어야만 화웨이 모바일 서비스를 사용할 수 있고 HMS 사이트 도구 패키지를 사용할 수 있습니다.당신은 이곳에서 화웨이 개발자 사이트에 로그인/등록할 수 있습니다.
AppGallery Connect에서 프로젝트 구성
우선 화웨이 모바일 서비스와 응용 프로그램을 통합해야 합니다.나는 응용 프로그램을 어떻게 통합하는지 상세하게 소개하지 않지만, 당신은 본문을 단계적인 지침으로 사용할 수 있습니다.
장치
우선 창고를 설치합시다.
npm i @hmscore/react-native-hms-site설치가 완료되면 라이브러리를 가져올 수 있습니다.import RNHMSSite from '@hmscore/react-native-hms-site'HMS 사이트 키트의 기능을 사용하기 전에우리는 그것을 초기화해야 한다.서비스를 초기화하려면 API 키가 필요합니다.응용 프로그램을 HMS와 통합하면 AppGallery Connect에서 자동으로 API 키를 제공합니다.AppGallery Connect>Your App>Project Settings>General information>App information에서 API 키를 찾을 수 있습니다.이왕 우리가api 키를 가지고 있는 이상initialize 서비스 함수를 호출합니다.
const config = {
apiKey: '<Your_API_KEY>' // You can find it in AppGallery Connect > YourApp > Project Settings > General information > App information};
RNHMSSite.initializeService(config)
.then(() => {
    console.log('Service is initialized successfully');
})
.catch((err) => {
    console.log('Error : ' + err);
 });
API 키가 올바르면 서비스 초기화가 콘솔에 표시됩니다.사용법
이제 HMS React 네이티브 사이트 키트를 사용할 수 있습니다.키워드 검색부터 시작합시다.
키워드(텍스트) 검색
HMS Site kit 키워드 검색 기능을 사용하여 사용자의 키워드 입력에 따라 위치 목록을 반환할 수 있습니다.검색 결과가 표시될 위치를 지정할 수도 있습니다.검색 반지름, 국가, 언어 및 페이지 크기를 지정할 수 있습니다.키워드 검색의 경우 POI를 기준으로 결과를 필터링하는 POI를 설정할 수 있습니다.사용자는 빵집, 학교, 현금인출기 등을 검색할 수 있다.
키워드 검색의 요청 주체로 사용되는 TextSearchRequest 객체를 만듭니다.관련 매개변수는 다음과 같습니다. 여기서 질의는 필수이고 다른 매개변수는 옵션입니다.
질의: 키워드를 검색합니다.
위치: 검색 결과에 편향된 경도와 위도가 필요합니다.
반지름: 반지름을 미터 단위로 검색합니다.이 값의 범위는 1부터 50000까지입니다.기본값은 50000입니다.
POI 유형: POI 유형.이 값 범위는 LocationType의 값 범위와 같습니다.
countryCode: ISO 3166-1 alpha-2 표준을 준수하는 검색 위치 국가의 코드입니다.
언어: 검색 결과를 표시하는 언어입니다.값 범위에 대한 자세한 내용은 언어 매핑의 언어 코드를 참조하십시오.이 매개 변수가 전달되지 않으면, 조회 필드의 언어를 우선적으로 사용합니다.현장 언어를 사용할 수 없으면 현지 언어를 사용합니다.
페이지크기: 페이지당 레코드 수입니다.이 값의 범위는 1부터 20까지입니다.기본값은 20입니다.
페이지Index: 현재 페이지 번호입니다.이 값의 범위는 1에서 60까지입니다.기본값은 1입니다.
이후에 textSearch 함수를 호출하여 TextSearchRequest 대상을 다음과 같은 매개 변수로 보낼 수 있습니다.
우리 파리에 가서 국제학교를 찾읍시다
const onTextSearch = () => {
let textSearchReq = {
    query: 'International',
    location: {
        lat: 48.893478,
        lng: 2.334595,
    },
    radius: 1000,
    countryCode: 'FR',
    language: 'en',
    pageIndex: 1,
    pageSize: 1,
    poiType: RNHMSSite.LocationType.SCHOOL
};
RNHMSSite.textSearch(textSearchReq)
    .then((response) => {
        console.log(JSON.stringify(response));
    })
    .catch((err) => {
        console.log(JSON.stringify(err));
    });
};
json의 응답은 이렇습니다. 보시다시피 처리할 수 있는 정보가 많습니다.{
"totalCount": 1,
"sites": [
    {
        "siteId": "FB3941B313927D74413FFF0E883144FE",
        "poi": {
            "rating": 0,
            "poiTypes": [
                "SCHOOL"
            ],
            "phone": "+(33)-(1)-42000679",
            "openingHours": {},
            "internationalPhone": "+(33)-(1)-42000679"
        },
        "viewport": {
            "southwest": {
                "lng": 2.3455935548062814,
                "lat": 48.87367776679441
            },
            "northeast": {
                "lng": 2.3494610451937183,
                "lat": 48.87622143320559
            }
        },
        "name": "Acting International",
        "formatAddress": "15, Rue Ambroise Thomas, 75009, 9e Arrondissement, Paris, Ile-de-France, France",
        "address": {
            "subLocality": "9e Arrondissement",
            "subAdminArea": "Paris",
            "postalCode": "75009",
            "thoroughfare": "Rue Ambroise Thomas",
            "countryCode": "FR",
            "locality": "Paris",
            "country": "France",
            "adminArea": "Ile-de-France"
        },
        "distance": 2269.4454697030014,
        "location": {
            "lng": 2.3475273,
            "lat": 48.8749496
        }
    }
]
}
근처HMS Site kit Nearest search feature는 사용자의 현재 위치를 가까운 위치로 되돌려 주는 기능을 제공합니다.검색 키워드, 검색 반지름, 언어 및 페이지 크기도 지정할 수 있습니다.가까운 검색의 경우 POI를 기준으로 결과를 필터링하는 POI(관심사)를 설정할 수 있습니다.사용자는 빵집, 학교, 현금인출기 등을 검색할 수 있다.
가까운 곳에서 검색할 요청 주체로 사용되는 NearbySearchRequest 대상을 만듭니다.관련 매개 변수는 다음과 같습니다. 여기서 위치는 필수입니다. 기타는 옵션입니다.
위치: 검색 결과에 편향된 경도와 위도가 필요합니다.
반지름: 반지름을 미터 단위로 검색합니다.이 값의 범위는 1부터 50000까지입니다.기본값은 50000입니다.
질의: 키워드를 검색합니다.
POI 유형: POI 유형.이 값 범위는 LocationType의 값 범위와 같습니다.
언어: 검색 결과를 표시하는 언어입니다.값 범위에 대한 자세한 내용은 언어 매핑의 언어 코드를 참조하십시오.이 매개 변수가 전달되지 않으면, 조회 필드의 언어를 우선적으로 사용합니다.현장 언어를 사용할 수 없으면 현지 언어를 사용합니다.
페이지크기: 페이지당 레코드 수입니다.이 값의 범위는 1부터 20까지입니다.기본값은 20입니다.
페이지Index: 현재 페이지 번호입니다.이 값의 범위는 1에서 60까지입니다.기본값은 1입니다.
그런 다음 nearby Search 함수를 호출하여 Nearby Search Request 객체를 다음 매개 변수로 보낼 수 있습니다.
우리 근처에서 현금인출기를 한 대 찾읍시다.
const onNearbySearch = () => {
let nearbySearchReq = {
    location: {
        lat: 51.500775,
        lng: -0.115756,
    },
    query: 'BANK',
    radius: 1000,
    poiType: RNHMSSite.LocationType.ATM,
    language: 'en',
    pageIndex: 1,
    pageSize: 1
};
RNHMSSite.nearbySearch(nearbySearchReq)
    .then((response) => {
        console.log(JSON.stringify(response));
    })
    .catch((err) => {
        console.log(JSON.stringify(err));
    });
};
json의 응답은 이렇습니다. 보시다시피 처리할 수 있는 정보가 많습니다.{
"totalCount": 1,
"sites": [
    {
        "siteId": "7B4F4024A4FD4D700E61B659247BB854",
        "poi": {
            "rating": 0,
            "poiTypes": [
                "ATM"
            ],
            "openingHours": {},
            "internationalPhone": ""
        },
        "viewport": {
            "southwest": {
                "lng": -0.11576103182719415,
                "lat": 51.498155166794405
            },
            "northeast": {
                "lng": -0.11167496817280585,
                "lat": 51.50069883320559
            }
        },
        "name": "Bank of Ireland - Post Office",
        "formatAddress": "125-131, Westminster Bridge Road, Lambeth, London, England, the United Kingdom",
        "address": {
            "subAdminArea": "London",
            "thoroughfare": "Westminster Bridge Road",
            "countryCode": "GB",
            "locality": "Lambeth",
            "country": "the United Kingdom",
            "adminArea": "England"
        },
        "distance": 206.06612089844526,
        "location": {
            "lng": -0.113718,
            "lat": 51.499427
        }
    }
]
}
사이트 세부 정보 검색Place details search는 사이트의 고유 ID(사이트 ID)를 기반으로 사이트에 대한 검색 세부 정보를 반환합니다.SiteId는 키워드, 근처 또는 사이트 권장 검색에서 검색할 수 있습니다.
place details 검색의 요청 주체로 사용할 DetailSearchRequest 대상을 만듭니다.관련 매개변수는 다음과 같습니다. 여기서 siteId는 필수이고 다른 매개변수는 옵션입니다.
siteId: 한 곳의 ID입니다.
언어: 검색 결과를 표시하는 언어입니다.이 매개변수가 전달되지 않으면 로컬 언어가 사용됩니다.
그 다음에 detailSearch 함수를 호출하고 DetailSearchRequest 대상을 다음과 같은 매개 변수로 보낼 수 있습니다.
근처에서 검색한atm기의 상세한 정보를 보여 주세요.
const onDetailSearch = () => {
let detailSearchReq = {
    siteId: '7B4F4024A4FD4D700E61B659247BB854',
    language: 'en'
};
RNHMSSite.detailSearch(detailSearchReq)
    .then((response) => {
        console.log(JSON.stringify(response));
    })
    .catch((err) => {
        console.log(JSON.stringify(err));
    });
};
json의 응답은 이렇습니다. 보시다시피 처리할 수 있는 정보가 많습니다.
                Reference
이 문제에 관하여(REACT NATIVE | HMS 사이트 키트 설치 및 사용 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sherloc78676146/react-native-how-to-install-use-hms-site-kit-5j5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)