孫叫獸帶你瞭解騰訊位置服務的認證與接入,多種行業方案參考!

前言:騰訊位置服務爲各類應用廠商和開發者提供領先的LBS服務和解決方案;有針對Web應用的JavaScript API, 適合手機端Native APP的各種SDK, WebService接口,適合小程序的插件和各類地圖API等。

目錄

接入指南 

地圖組件(H5)

地圖javaScript API

定位SDK  (Android定位 SDK |    IOS定位 SDK)

地圖SDK(Android地圖SDK |  IOS地圖SDK)

WebService API:參考文檔

地主認證通道:

常見問題

騰訊位置服務控制檯

行業解決方案

騰訊位置服務技術教程

騰訊位置特色產品實例


 

接入指南 

接入步驟:(快速通道:騰訊位置官網

作爲開發者應該如何選擇對應的API?

地圖組件(H5)

手機組件H5,完整應用,不需要開發者進行開發,——》參考文檔

位置展示組件,可以在地圖上展示一個或多個位置點。數據來源支持三種方式:通過URL傳遞數據、地圖檢索數據和自有定製數據。 可以展示每個位置點的名稱、地址等詳細信息,也可查看該位置點的街景信息或發起到該位置的路線規劃。

例如:

調用地址:

https://apis.map.qq.com/tools/poimarker?type=0&marker=coord:39.96554,116.26719;title:成都;addr:北京市海淀區復興路32號院|coord:39.87803,116.19025;title:成都園;addr:北京市豐臺區射擊場路15號北京園博園|coord:39.88129,116.27062;title:老成都;addr:北京市豐臺區嶽各莊梅市口路西府景園六號樓底商|coord:39.9982,116.19015;title:北京園博園成都園;addr:北京市豐臺區園博園內&key=yourkey&referer=myapp

地圖javaScript API

用於瀏覽器端地圖顯示與應用,兼容手機端及PC端——》參考文檔

JavaScript API V2可用於在網站中加入交互性強的街景、地圖,能很好地支持PC及手機設備,身材小巧,動畫效果順滑流暢,動感十足,提供地圖操作、標註、地點搜索、出行規劃、地址解析、街景等接口,功能豐富,並免費開放各種附加工具庫。JavaScript API V2是免費服務,任何提供免費訪問的網站都可以調用。

可視化組件是JSAPI的附加庫,在加載JavaScript API服務請求中通過libraries參數指明引入

<script charset=“utf-8” src=“https://map.qq.com/api/js?v=2.exp&key=YOUR_KEY&libraries=visualization”>

接口均定義在qq.maps.visualization全局變量中,需在地圖初始化完成之後使用

var map = new qq.maps.Map(container, mapOpts);
var dots = new qq.maps.visualization.Dots({
    map: map
});
dots.setData(data);

例如:我們要顯示以北京的天安門爲中心的 603x300 地圖:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>孫叫獸測試天安門地圖</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<style type="text/css">
html,body{
    width:100%;
    height:100%;
}
*{
    margin:0px;
    padding:0px;
}
body, button, input, select, textarea {
    font: 12px/16px Verdana, Helvetica, Arial, sans-serif;
}
p{
    width:603px;
    padding-top:3px;
    overflow:hidden;
}
.btn{
    width:142px;
}
#container{
    width:100%;
    height:100%;
}
</style>
<script charset="utf-8" src="https://map.qq.com/api/js?v=2.exp&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77"></script>
<script>

window.onload = function(){

//直接加載地圖


    //初始化地圖函數  自定義函數名init
    function init() {
        //定義map變量 調用 qq.maps.Map() 構造函數   獲取地圖顯示容器
         var map = new qq.maps.Map(document.getElementById("container"), {
            center: new qq.maps.LatLng(39.916527,116.397128),      // 地圖的中心地理座標。
            zoom:8                                                 // 地圖的中心地理座標。
        });
    }

    //調用初始化函數地圖
    init();


}
</script>
</head>
<body>
<!--   定義地圖顯示容器   -->
<div id="container"></div>
</body>
</html>

效果:

加載地圖API:

方式一:頁面直接引入。

<script charset="utf-8" src="https://map.qq.com/api/js?v=2.exp&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77"></script>

方式二:異步加載 JavaScript API

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>異步加載地圖</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<style type="text/css">
html,body{
    width:100%;
    height:100%;
}
*{
    margin:0px;
    padding:0px;
}
body, button, input, select, textarea {
    font: 12px/16px Verdana, Helvetica, Arial, sans-serif;
}
p{
    width:603px;
    padding-top:3px;
    overflow:hidden;
}
#container{
    width:100%;
    height:100%;
}
.btn{
    width:142px;
}
</style>
<script>


function init() {
  //設置地圖中心點
  var myLatlng = new qq.maps.LatLng(39.916527,116.397128);
  //定義工廠模式函數
  var myOptions = {
    zoom: 8,               //設置地圖縮放級別
    center: myLatlng,      //設置中心點樣式
    mapTypeId: qq.maps.MapTypeId.ROADMAP  //設置地圖樣式詳情參見MapType
  }
  //獲取dom元素添加地圖信息
  var map = new qq.maps.Map(document.getElementById("container"), myOptions);
}
  //異步加載地圖庫函數文件
function loadScript() {
  //創建script標籤
  var script = document.createElement("script");
  //設置標籤的type屬性
  script.type = "text/javascript";
  //設置標籤的鏈接地址
  script.src = "https://map.qq.com/api/js?v=2.exp&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77&callback=init";
  //添加標籤到dom
  document.body.appendChild(script);
}
  
window.onload = loadScript;    // dom文檔加載結束開始加載 此段代碼
</script>
</head>
<body>
<div id="container"></div>
</body>
</html>

效果:

有如下功能:

疊加覆蓋物 強大的附加庫 定義自己的地圖
提供點標註、折線、圓、多邊形、信息窗
口等覆蓋物,用戶可以定義個性化地圖。
提供了鼠標繪製工具箱、幾何運算、座標
轉換、文本輸入提示等附加庫。
支持用戶可以自定義地圖類型,使用自己
的數據或圖片,自定義切圖、取圖規則。

 

定位SDK  (Android定位 SDK |    IOS定位 SDK)

騰訊地圖定位SDK是一套基於Android 4.1及以上版本設備的應用程序接口。通過該接口,您可以輕鬆使用騰訊地圖定位服務,構建LBS應用程序。

定位SDK包括GPS定位與網絡定位,實現了經緯度座標偏轉與當前位置的POI名稱、地址或者行政區劃的查詢。採用了移動緩存策略,節省流量與電量。

定位SDK是提供給具有一定Android編程經驗和了解面向對象概念的開發者使用。

本android示例採用後臺定位方式:

當用戶進程出於後臺時,有時也會有需求使用定位服務,但應用處於後臺時Android系統會對定位做諸多限制。因此我們通過設置前臺Service的方式來提高進程級別,使定位服務由後臺轉向前臺。

 1.manifest增加Service聲明

<service android:name="com.tencent.map.geolocation.s" />

 

2.在啓動定位之前,調用enableForegroundLocation

mLocationManager.enableForegroundLocation(LOC_NOTIFICATIONID, buildNotification());
mLocationManager.requestLocationUpdates(request, this, getMainLooper());

構建Notification(其中enableForegroundLocation的參數分別是一個整形的NotificationID,一個是Notification的實例。)

private Notification buildNotification() {
    Notification.Builder builder = null;
    Notification notification = null;
    if (android.os.Build.VERSION.SDK_INT >= 26) {
        //Android O上對Notification進行了修改,如果設置的targetSDKVersion>=26建議使用此種方式創建通知欄
        if (notificationManager == null) {
            notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        }
        String channelId = getPackageName();
        if (!isCreateChannel) {NotificationChannel notificationChannel = new NotificationChannel(channelId,
                    NOTIFICATION_CHANNEL_NAME, NotificationManager.IMPORTANCE_DEFAULT);
            notificationChannel.enableLights(true);//是否在桌面icon右上角展示小圓點
            notificationChannel.setLightColor(Color.BLUE); //小圓點顏色
            notificationChannel.setShowBadge(true); //是否在久按桌面圖標時顯示此渠道的通知
            notificationManager.createNotificationChannel(notificationChannel);
            isCreateChannel = true;
        }
        builder = new Notification.Builder(getApplicationContext(), channelId);
    } else {
        builder = new Notification.Builder(getApplicationContext());
    }
    builder.setSmallIcon(R.drawable.ic_launcher)
            .setContentTitle("LocationDemo")
            .setContentText("正在後臺運行")
            .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher))
            .setWhen(System.currentTimeMillis());

    if (android.os.Build.VERSION.SDK_INT >= 16) {
        notification = builder.build();
    } else {
        notification = builder.getNotification();
    }
    return notification;
}

3.在停止定位之後,調用disableForegroundLocation停止前臺服務

LocationManager.removeUpdates(this);
mLocationManager.disableForegroundLocation(true);

權限配置(請在manifest文件下配置如下權限:)

<!-- 通過GPS得到精確位置 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 通過網絡得到粗略位置 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 訪問網絡. 某些位置信息需要從網絡服務器獲取 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 訪問WiFi狀態. 需要WiFi信息用於網絡定位 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 修改WiFi狀態. 發起WiFi掃描, 需要WiFi信息用於網絡定位 -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!-- 訪問網絡狀態, 檢測網絡的可用性. 需要網絡運營商相關信息用於網絡定位 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 訪問網絡的變化, 需要某些信息用於網絡定位 -->
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<!-- 訪問手機當前狀態, 需要device id用於網絡定位 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- 支持A-GPS輔助定位 -->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<!-- 用於 log 日誌 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

說明隨着Android版本的升級,權限使用方面也有變動,具體可參考實用文檔中針對Android各個版本的適配文檔。

定位服務是一個重度依賴用戶授權的功能,因此在App設計時必須充分考慮獲取用戶權限的方式,合理引導用戶授予權限。

 

騰訊 iOS 定位 SDK 提供了不依賴於地圖定位的定位功能,開發者可以無地圖顯示的場景中便捷地爲應用程序添加定位功能。 iOS定位SDK提供了單次定位、連續定位、逆地理信息等功能。兼容iOS7.0 及以上版本。

定位權限申請

(1) 需要在https://lbs.qq.com/dev/console/key/add上面申請一個apiKey,對應在TencentLBSLocationManager的apiKey屬性上設置纔可以使用。

(2) 需要在info.plist中追加 NSLocationWhenInUseUsageDescription 或NSLocationAlwaysUsageDescription 字段,以申請定位權限。

  (3) allowsBackgroundLocationUpdates表示是否允許後臺定位。默認爲 NO。只在iOS 9.0 及以後起作用。設置爲 YES 的時候必須保證 Background Modes 中的 Location updates 處於選中狀態,否則會拋出異常。注意,如果不設置爲YES,不需要申請該權限,否則會審覈不通過!

引入定位包: 將庫文件 TencentLBS.framework 拷貝到您的APP的工程目錄下,在Xcode的Target中選擇 “Build Phases”->“Link Binary With Libraries”->“Add”->“Add Other…”-> 選擇 TencentLBS.framework 目錄並添加。

引入系統庫文件:仿照上面的操作 ("Add"的時候直接在列表中查找選擇 )添加系統庫libz.1.2.5.tbd 在 Build Setting - Linking - Other Linker Flags 裏 添加 -lstdc++.6.0.9, -lsqlite3(注意:在 Xcode9 以上,不再需要這兩個庫) 。

- (void)configLocationManager
{
    self.locationManager = [[TencentLBSLocationManager alloc] init];
 
    [self.locationManager setDelegate:self];
 
    [self.locationManager setApiKey:@"對應於申請的apiKey "];
 
    [self.locationManager setPausesLocationUpdatesAutomatically:NO];
 
    // 需要後臺定位的話,可以設置此屬性爲YES。
    [self.locationManager setAllowsBackgroundLocationUpdates:YES];
 
    // 如果需要POI信息的話,根據所需要的級別來設定,定位結果將會根據設定的POI級別來返回,如:
    [self.locationManager setRequestLevel:TencentLBSRequestLevelName];
 
    // 申請的定位權限,得和在info.list申請的權限對應纔有效
    CLAuthorizationStatus authorizationStatus = [CLLocationManager authorizationStatus];
    if (authorizationStatus == kCLAuthorizationStatusNotDetermined) {
        [self.locationManager requestWhenInUseAuthorization];
    }
}
 
// 單次定位
- (void)startSingleLocation {
    [self.locationManager requestLocationWithCompletionBlock:
        ^(TencentLBSLocation *location, NSError *error) {
            NSLog(@"%@, %@, %@", location.location, location.name, location.address);
        }];
}
 
// 連續定位
- (void)startSerialLocation {
    //開始定位
    [self.locationManager startUpdatingLocation];
}
 
- (void)stopSerialLocation {
    //停止定位
    [self.locationManager stopUpdatingLocation];
}
 
- (void)tencentLBSLocationManager:(TencentLBSLocationManager *)manager
                 didFailWithError:(NSError *)error {
    CLAuthorizationStatus authorizationStatus = [CLLocationManager authorizationStatus];
    if (authorizationStatus == kCLAuthorizationStatusDenied ||
        authorizationStatus == kCLAuthorizationStatusRestricted) {
        [self.displayLabel setText:@"定位權限沒開啓!"];
 
        UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"提示"
                                                                       message:@"定位權限未開啓,是否開啓?"
                                                                preferredStyle:UIAlertControllerStyleAlert];
        [alert addAction:[UIAlertAction actionWithTitle:@"是"
                                                  style:UIAlertActionStyleDefault
                                                handler:^(UIAlertAction * _Nonnull action) {
            if( [[UIApplication sharedApplication]canOpenURL:
                [NSURL URLWithString:UIApplicationOpenSettingsURLString]] ) {
                [[UIApplication sharedApplication] openURL:
                    [NSURL URLWithString:UIApplicationOpenSettingsURLString]];
            }
        }]];
 
        [alert addAction:[UIAlertAction actionWithTitle:@"否"
                                                  style:UIAlertActionStyleDefault
                                                handler:^(UIAlertAction * _Nonnull action) {
        }]];
 
        [self presentViewController:alert animated:true completion:nil];
 
    } else {
        [self.displayLabel setText:[NSString stringWithFormat:@"%@", error]];
    }
}
 
 
- (void)tencentLBSLocationManager:(TencentLBSLocationManager *)manager
                didUpdateLocation:(TencentLBSLocation *)location {
    //定位結果
    NSLog(@"location:%@", location.location);
}

報錯狀態提示:

typedef NS_ENUM(NSUInteger, TencentLBSLocationError) {
    TencentLBSLocationErrorUnknown = 0,                 //!< 錯誤碼,表示目前位置未知,但是會一直嘗試獲取
    TencentLBSLocationErrorDenied = 1,                  //!< 錯誤碼,表示定位權限被禁止
    TencentLBSLocationErrorNetwork = 2,                 //!< 錯誤碼,表示網絡錯誤
    TencentLBSLocationErrorHeadingFailure = 3,          //!< 錯誤碼,表示朝向無法確認
    TencentLBSLocationErrorOther = 4,                   //!< 錯誤碼,未知錯誤
};

地圖SDKAndroid地圖SDKIOS地圖SDK

用於手機端APP嵌入地圖與應用。

安卓3D適用於對地圖強依賴場景,如導航、打車、代駕等。也可用於可穿戴設備。2D適用於輔助位置展示場景,如選擇發送位置、地址展示、軌跡展示等,建議對包大小敏感的開發者選擇用。

AndroidStudio配置

第1步: 獲取Key
[點我獲取Key>>](/mobile/androidMapSDK/developerGuide/getKey)

第2步:創建AndroidStudio項目
在AndroidStudio中創建一個空的Android項目。

第3步:在項目中集成SDK
在 AndroidStudio 項目中集成騰訊地圖 SDK 主要有兩種方式: 
1. 手動將騰訊地圖 sdk 的 jar 包和 so 庫導入到工程 
2. 通過 Gradle 配置 maven 或 jcenter 倉庫集成 SDK 


我們更推薦用戶使用第二種方式,即,通過 maven 導入騰訊地圖 SDK,下面我們詳細介紹下兩種方式。 

通過拷貝 jar 包、so 庫添加 SDK

  1. 首先,請您在這裏獲取騰訊地圖 SDK for Andorid 及其 demo。

  2. 解壓下載的壓縮包並拷貝文件 
    以4.3.4版本的地圖功能爲例,解壓後,得到一個 libs文件夾,該文件夾中包含tencent-mapsdk-release-4.3.4.b8edc92f.jar文件和一個jniLibs文件夾(文件中包含所有的so庫文件) 

  3. 將 libs 目錄下的"*.jar"文件拷貝到 AndroidStudio 項目對應的 app/libs/ 文件夾下。 


右鍵該jar包,選擇add as library,彈出如下窗口: 
 

點擊OK即可,變成下圖所示就是導入成功: 

 

  1. 將 jniLibs 目錄下的所有文件按照原目錄格式,拷貝到AndroidStudio項目對應的 app/src/main/jniLibs/ 目錄下。




騰訊地圖Android SDK還提供了地圖組件庫TencentMapUtils,目前地圖組件包含了點聚合組件、小車平滑移動組件。 組件

IOS自動部署如下:

用戶使用騰訊地圖 iOS SDK 支持項目開發時,可以通過 Cocoapods 自動部署將 SDK 添加到工程當中。自動部署目前僅支持 騰訊地圖 iOS SDK 4.2.6.2 及以上版本

獲取CocoaPods

CocoaPods 是一種支持 Swift 和 Objective-C 項目的第三方庫資源管理器,用戶可通過 Cocoapods 獲取騰訊地圖 iOS SDK。

如果您已安裝了CocoaPods,請直接跳到第二步:通過CocoaPods安裝SDK。

1. 配置 ruby 的軟件源

建議通過ruby安裝CocoaPods。由於默認的 ruby 的軟件源 “http://mirrors.tencent.com/rubygems/” 被牆阻攔導致 CocoaPods 安裝失敗,因此需要更新一下 ruby 的源。依次執行如下命令:

# 添加 TUNA 源並移除默認源
gem sources --add http://mirrors.tencent.com/rubygems/ --remove https://rubygems.org/
   
#(查看當前ruby的源是否成功更換)
gem sources -l 

完成上述命令後,顯示如下文字則表示更新成功

*** CURRENT SOURCES *** 
http://mirrors.tencent.com/rubygems/

 

2. 升級 gem

將 gem 的版本更新到最新確保 Cocoapods 安裝成功

sudo gem update --system

 

3. 安裝 Cocoapods

請使用以下命令安裝 Cocoapods:

sudo gem install -n /usr/local/bin cocoapods pod setup

注:Cocoapods 安裝過程可能會耗時較長,也有可能受網絡的狀況導致失敗,如果安裝失敗請再次嘗試

通過 CocoaPods 安裝 SDK

1. 創建 Podfile

在當前 工程文件 (.xcodeproj) 所在文件夾下創建一個名爲 Podfile 的文件。Podfile 內容如下:

platform :ios, "8.0" 		# 手機系統版本
target "QMapKitDemo" do	        # 工程的名字
pod 'Tencent-MapSDK'		# 地圖SDK
end
   
#當有多個target時,不同的target也需要各自設置
#target "QMapKitDemo1" do		# 工程的名字
#	pod 'Tencent-MapSDK'		# 地圖SDK
#end
   
#target "QMapKitDemo2" do		# 工程的名字
#	pod 'Tencent-MapSDK'		# 地圖SDK
#end

 

2. 安裝SDK

#用於保證本地地圖相關 SDK 爲最新版 
pod repo update 
   
#安裝 SDK
pod install

命令執行成功後,會生成 .xcworkspace 文件,打開.xcworkspace 文件以啓動工程(注意:此時不能同時開啓.xcodeproj文件,示例:

 
 

3. 升級 SDK

若已通過自動部署安裝了騰訊地圖 iOS SDK,想要更新到最新版本,可在 Podfile 文件所在目錄下執行以下指令:

pod repo update # 用於保證本地地圖相關SDK爲最新版 
pod update

 

4. 安裝指定版本 SDK

自動部署目前僅支持地圖 iOS SDK 4.2.6.2及以上版本,使用指定版本 SDK,需修改 Podfile 文件,示例:

platform :ios, "8.0" 				# 手機系統版本
target "QMapKitDemo" do			        # 工程的名字
pod 'Tencent-MapSDK', '~> 4.2.6.2'  	        # 在此修改或添加 3D SDK 版本號
end

然後執行命令:

#用於保證本地地圖相關 SDK 爲最新版 
pod repo update 

# 安裝 SDK
pod install

WebService API:參考文檔

 騰訊地圖WebService API 是基於HTTPS/HTTP協議的數據接口,開發者可以使用任何客戶端、服務器和開發語言,按照騰訊地圖WebService API規範,按需構建HTTPS請求,並獲取結果數據(目前支持JSON/JSONP方式返回)。

注意:這個有調用 配額限制說明(其他產品均無調用限制):https://lbs.qq.com/service/webService/webServiceGuide/webServiceQuota

騰訊位置服務API Key,在調用時用於唯一標識開發者身份,API KEY是各產品通用的,也就是說同一個Key可以用在地圖SDK,也可以用在JavascriptAPI,也可以用在WebServiceAPI以及其它各產品中,可針對不同產品可獨立啓用(開關)。
假設您的某個Key只會調用地圖SDK,可在Key配置界面,將其它產品關閉,以降低安全風險。

 

在Key設置中,勾中WebService複選框,即爲啓用產品,該Key纔可調用WebServiceAPI服務 未啓用時請求服務,會返回:

{ "status": 199, "message": "此key未開啓webservice功能" }

申請密鑰

示例:

https://apis.map.qq.com/ws/place/v1/search?keyword=酒店&boundary=nearby(39.908491,116.374328,1000)&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77

多種安全策略配置請參考:安全策略說明

地主認證通道:

如果你是某個地點的經營者,所有者等,可以自行申請認證,審覈通過即可在地圖上展示申請地點,入口

各類企事業單位、個體工商戶,對自己的經營場所、實體店鋪希望騰訊地圖進行收錄的,均可申請商戶標註。提交商戶標註後,您所填寫的信息會被所有用戶看到,因此請確認您提交的位置信息符合國家相關法律(例如軍事設施,保密地點等信息根據國家相關法律不能提交)。已有商戶標註存在有誤的,可以提交地點糾錯修改。

常見問題

地主認證常見問題

接入認證常見問題

騰訊位置服務控制檯

一文帶你瞭解騰訊位置服務的開發與接入

行業解決方案

參考文檔

騰訊位置服務技術教程

參考文檔

騰訊位置特色產品實例

參考文檔

 

好啦,本期騰訊位置服務內容就分享到這裏,我們下期見!

需要騰訊位置服務可以從下方通道快速進入,填寫邀請碼獲得更多技術支持!

騰訊位置服務註冊地址:https://lbs.qq.com?lbs_invite=3Z2RFL3                    

邀請碼:3Z2RFL3  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章