亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Unity接入高德開放API實(shí)現(xiàn)IP定位

 更新時(shí)間:2022年04月13日 10:41:36   作者:CoderZ1010  
這篇文章主要為大家介紹了Unity如何接入高德開放API實(shí)現(xiàn)IP定位功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定參考價(jià)值,需要的可以參考一下

一、接口介紹

Http接口,根據(jù)輸入的IP地址,快速定位IP所在位置,僅支持IPV4,不支持國(guó)外IP解析。

二、申請(qǐng)密鑰Key

1.登錄高德開放平臺(tái),進(jìn)入控制臺(tái)

2.在應(yīng)用管理中創(chuàng)建新的應(yīng)用

3.為應(yīng)用添加Key

三、在Unity中應(yīng)用

1.定位數(shù)據(jù)結(jié)構(gòu)

根據(jù)官方文檔中給出的返回結(jié)果參數(shù)說(shuō)明定義相應(yīng)的數(shù)據(jù)結(jié)構(gòu)

/// <summary>
/// IP定位響應(yīng)數(shù)據(jù)結(jié)構(gòu)
/// </summary>
[Serializable]
public class IPLocationResponse
{
    /// <summary>
    /// 返回結(jié)果狀態(tài)值
    /// 0表示失敗 1表示成功
    /// </summary>
    public string status;
    /// <summary>
    /// 返回狀態(tài)說(shuō)明
    /// status為0時(shí),info返回錯(cuò)誤原因 否則返回OK
    /// </summary>
    public string info;
    /// <summary>
    /// 狀態(tài)碼 10000表示正確,詳情參閱官方文檔info狀態(tài)表
    /// </summary>
    public string infocode;
    /// <summary>
    /// 省份名稱
    /// </summary>
    public string province;
    /// <summary>
    /// 城市名稱
    /// </summary>
    public string city;
    /// <summary>
    /// 城市的adcode編碼
    /// </summary>
    public string adcode;
    /// <summary>
    /// 所在城市矩形區(qū)域范圍
    /// </summary>
    public string rectangle;
}

2.函數(shù)封裝

using System;
using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
 
/// <summary>
/// IP定位
/// </summary>
public class IPLocation 
{
    //在高德開放平臺(tái)創(chuàng)建應(yīng)用獲取密鑰
    private static readonly string key = "";
 
    /// <summary>
    /// 發(fā)起網(wǎng)絡(luò)請(qǐng)求
    /// </summary>
    /// <param name="ip">要定位的IP地址</param>
    /// <param name="callback">回調(diào)函數(shù)</param>
    /// <returns></returns>
    public static IEnumerator SendWebRequest(string ip, Action<IPLocationResponse> callback)
    {
        string url = string.Format("https://restapi.amap.com/v3/ip?key={0}&ip={1}", key, ip);
        using(UnityWebRequest request = UnityWebRequest.Get(url))
        {
            yield return request.SendWebRequest();
            if (!request.isHttpError && !request.isNetworkError)
            {
                Debug.Log(request.downloadHandler.text);
                IPLocationResponse response = JsonUtility.FromJson<IPLocationResponse>(request.downloadHandler.text);
                callback?.Invoke(response);
            }
            else
            {
                Debug.Log("調(diào)用IP定位接口失?。? + request.error.ToString());
            }
        }
    }
}

3.測(cè)試

using UnityEngine;
 
public class IPLocationExample : MonoBehaviour
{
    private void Start()
    {
        StartCoroutine(IPLocation.SendWebRequest("114.222.121.24", s => { }));
    }
}

到此這篇關(guān)于Unity接入高德開放API實(shí)現(xiàn)IP定位的文章就介紹到這了,更多相關(guān)Unity IP定位內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論