userinfo
web 呼叫範例
{
"name": "userinfo",
"data": null
}app 回傳
Account
id: 使用者唯一序號
stringaccount: 使用者帳號
stringusername: 使用者名稱
stringrealName: 真實姓名
stringidNo: 身分證字號
stringemail: 電子郵件
stringphoneNo: 手機號碼
stringbirthday: 生日
stringmemberType: 會員類別
string"personal": 一般會員
"organization": 組織會員 "foreigner": 外籍人士 "employee": 北市府機關員工verifyLevel: 會員驗證等級
string0: 未驗證
> 大於 0: 已實名addresses: 通訊地址
array[Address]Address:
zip3: 郵遞區號
intcity: 鄉鎮市
stringtown: 市區
stringvillage: 鄰里
stringstreet: 街道
stringusageType: 標記型態
string0: 其他
> 1: 住家
> 2: 公司seq: 序號
intpriority: 是否為預設地址
bool
residentAddress: 戶籍地址
stringcitizen: 是否為台北市民
boolnativePeople: 是否為原住民
boolcityInternetUid: 舊網路市民 ID
string
app 回傳範例
{
"name": "userinfo",
"data": {
"id": "7f3562f4-bb3f-4ec7-89b9-da3b4b5ff250",
"account": "wz7786",
"username": "Wesley",
"realName": "金大森",
"idNo": "A123456789",
"email": "ist83903@bcaoo.com",
"phoneNo": "0932166777",
"birthday": "1988/12/12",
"memberType": "personal",
"verifyLevel": "3",
"addresses": [
{
"zip3": 104,
"city": "臺北市",
"town": "中山區",
"village": "正得里",
"street": "吉林路",
"usageType": "0",
"seq": 1,
"priority": true
}
],
"residentAddress": "臺北市中山區吉林路 69 號 4 樓",
"citizen": true,
"nativePeople": false,
"cityInternetUid": ""
}
}launch_map
web 呼叫範例
{
"name": "launch_map",
"data": "https://maps.app.goo.gl/sQKx4n3WctXuS5Bw8"
}app 回傳
- bool: 可否開啟地圖功能
app 回傳範例
{
"name": "launch_map",
"data": true
}phone_call
web 呼叫範例
{
"name": "phone_call",
"data": "02-1234-5678"
}app 回傳
- bool: 可否開啟電話功能
app 回傳範例
{
"name": "phone_call",
"data": bool
}1999agree
web 呼叫範例
{
"name": "1999agree",
"data": true
}data 不可為 null,內容不影響行為。app 固定撥打 1999。
app 行為
- 使用者尚未同意電話撥打條款時,app 先開啟條款頁。
- 使用者同意後,app 顯示「語音通報」對話框,使用者按「立即撥號」才會撥出。
app 回傳
- 成功顯示對話框時,app 不回覆。
- 裝置無法撥打電話,或使用者未同意條款時,app 回覆
false。
app 回傳範例
{
"name": "1999agree",
"data": false
}location
web 呼叫範例
{
"name": "location",
"data": null
}app 回傳
Position 詳見 GeoLocator - Position
accuracy: 水平精準度(公尺)
doublealtitude: 高度(公尺)
doublealtitude_accuracy: 高度精準度(公尺)
doublefloor: 樓層
int, nullableheading: 移動中的朝向方向
doubleheading_accuracy: 移動中的朝向方向精準度(度)
doubleis_mocked: 是否為模擬定位數據(Android API lvl 18 後版本)
boollatitude: 緯度(-90.0(含) ~ +90.0(含))
doublelongitude: 經度(-180.0(不含) ~ +180.0(含))
doublespeed: 移動速度(公尺/秒)
doublespeed_accuracy: 移動速度精準度(公尺/秒)
doubletimestamp: 當前數據取得時間(ms)
intvertical_speed: 垂直速度(公尺/秒),正值為上升、負值為下降。裝置不支援時為 0.0
doublevertical_speed_accuracy: 垂直速度精準度(公尺/秒)。裝置不支援時為 0.0
doublehas_accuracy、has_altitude、has_altitude_accuracy、has_heading、has_heading_accuracy、has_speed、has_speed_accuracy、has_vertical_speed、has_vertical_speed_accuracy: 平台是否實際回報對應欄位。為 false 時,對應欄位的 0.0 只是預設值,不是量測結果
bool
app 回傳範例
{
"name": "location",
"data": {
"longitude": -121.406417,
"latitude": 38.785834,
"timestamp": 1724466344054,
"accuracy": 5.0,
"altitude": 0.0,
"altitude_accuracy": 0.0,
"floor": null,
"heading": -1.0,
"heading_accuracy": -1.0,
"speed": 0.0,
"speed_accuracy": 0.0,
"is_mocked": true,
"vertical_speed": 0.0,
"vertical_speed_accuracy": 0.0,
"has_accuracy": true,
"has_altitude": true,
"has_altitude_accuracy": true,
"has_heading": false,
"has_heading_accuracy": false,
"has_speed": true,
"has_speed_accuracy": true,
"has_vertical_speed": false,
"has_vertical_speed_accuracy": false
}
}deviceinfo
web 呼叫範例
{
"name": "deviceinfo",
"data": null
}app 回傳範例
ios
{
"systemName": "iOS",
"isPhysicalDevice": false,
"utsname": {
"release": "23.6.0",
"sysname": "Darwin",
"nodename": "xxx-MBP",
"machine": "iPhone16,1",
"version": "Darwin Kernel Version xxx: ..."
},
"model": "iPhone",
"localizedModel": "iPhone",
"systemVersion": "17.x",
"name": "iPhone xxx",
"identifierForVendor": "xxx-xxx-xxxx-...",
"modelName": "iPhone 15 Pro",
"isiOSAppOnMac": false,
"isiOSAppOnVision": false,
"physicalRamSize": 8192,
"availableRamSize": 2048,
"freeDiskSize": 8593948672,
"totalDiskSize": 10411143168
}android
可參考:android.os.Build
{
"product": "sdk_gphone64_arm64",
"supportedAbis": [
"arm64-v8a"
],
"supported32BitAbis": [],
"display": "AP31.xxxx.xxx",
"type": "user",
"isPhysicalDevice": false,
"version": {
"baseOS": "",
"securityPatch": "2024-xx-xx",
"sdkInt": 34,
"release": "14",
"codename": "VanillaIceCream",
"previewSdkInt": 1,
"incremental": "11566045"
},
"systemFeatures": [
"android.hardware.sensor.proximity",
"android.software.adoptable_storage",
...
],
"manufacturer": "Google",
"tags": "release-keys",
"supported64BitAbis": [
"arm64-v8a"
],
"bootloader": "unknown",
"fingerprint": "google/sdk_gphone64_arm64/...",
"host": "x-xxx-...",
"isLowRamDevice": false,
"model": "sdk_gphone64_arm64",
"id": "AP31.xxxx.xxx",
"brand": "google",
"device": "emu64a",
"board": "goldfish_arm64",
"hardware": "xxxxxx",
"name": "xxx",
"time": 1724466344000,
"physicalRamSize": 3967,
"availableRamSize": 1536,
"freeDiskSize": 8593948672,
"totalDiskSize": 10411143168
}open_link
web 呼叫範例
{
"name": "open_link",
"data": "https://www.gov.taipei/"
}app 行為
data 為網址字串時,app 以內建 WebView 開啟該網址。
app 回傳
- 成功開啟時,app 不回覆。
data為null時,app 回覆false。
app 回傳範例
{
"name": "open_link",
"data": false
}notify
web 呼叫範例
{
"name": "notify",
"data": {
"title": "訂閱通知",
"content": "已取消訂閱xxx"
}
}app 行為
- app 以
title、content發送一則手機通知。 content符合已訂閱xxx時,app 會把xxx加入訂閱清單。content符合已取消訂閱xxx時,app 會把xxx移出訂閱清單。
app 回傳
- 成功發送通知時,app 不回覆。
data不是物件時,app 回覆false。
app 回傳範例
{
"name": "notify",
"data": false
}