W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
基礎庫 1.10.8 版本開始支持。
解釋:獲取系統(tǒng)信息。
Web 態(tài)說明:由于瀏覽器的限制,在 Web 態(tài)下部分系統(tǒng)信息無法獲取,詳見下方 success 返回參數(shù)說明。
Object object
屬性名 | 類型 | 必填 | 默認值 | 說明 |
---|---|---|---|---|
success | Function | 否 | 接口調(diào)用成功的回調(diào)。 | |
fail | Function | 否 | 接口調(diào)用失敗的回調(diào)函數(shù)。 | |
complete | Function | 否 | 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行)。 |
參數(shù) | 參數(shù)類型 | 說明 | 最低版本 | Web 態(tài)說明 |
---|---|---|---|---|
brand | String | 手機品牌 | - | |
model | String | 手機型號 | - | |
pixelRatio | Number | 設備像素比 | - | |
screenWidth | Number | 屏幕寬度 | - | |
screenHeight | Number | 屏幕高度 | - | |
windowWidth | Number | 可使用窗口寬度 | - | |
windowHeight | Number | 可使用窗口高度 | - | |
statusBarHeight | Number | 狀態(tài)欄的高度 | - | |
navigationBarHeight | Number | 導航欄的高度 | 3.0.17 | - |
language | String | 宿主 App 設置的語言 | - | |
version | String | 宿主 App 版本號 | Web 態(tài)無宿主概念,返回空字符串。 | |
system | String | 操作系統(tǒng)版本 | - | |
platform | String | 客戶端平臺,如:ios | Web 態(tài)下該字段為 'web'。 | |
fontSizeSetting | Number | 用戶字體大小設置,取值為 1、2、3、4,分別對應小、中、大、特大四種字體等級 | - | |
SDKVersion | String | 客戶端基礎庫版本 | Web 態(tài)無基礎庫版本管理,僅返回模擬值 999.999.999。 | |
host | String | 宿主平臺,詳見宿主平臺枚舉值列表 。 | 3.30.2 | Web 態(tài)的 host 為 'web'。 |
cacheLocation | Object | 上一次緩存的位置信息 | 安卓端最低基礎庫版本 3.40.4;ios 最低支持版本 3.70.2 | 暫不支持 |
swanNativeVersion | String | 宿主平臺版本號 | 最低支持版本 1.13.18 | Web 態(tài)無宿主概念,僅返回模擬值。 |
devicePixelRatio | Number | 屏幕密度 | 安卓最低支持基礎庫版本 3.0.39; ios 最低支持版本 3.0.39 | - |
albumAuthorized | Boolean | 允許宿主使用相冊的開關(僅 iOS 有效) | ios 最低支持版本 3.110.3; 開發(fā)者工具暫不支持 | 暫不支持 |
notificationAuthorized | Boolean | 允許宿主通知的開關 | 安卓最低支持基礎庫版本 3.110.3; ios 最低支持版本 3.110.3; 開發(fā)者工具暫不支持 | 暫不支持 |
notificationAlertAuthorized | Boolean | 允許宿主通知帶有提醒的開關(僅 iOS 有效) | ios 最低支持版本 3.110.3; 開發(fā)者工具暫不支持 | 暫不支持 |
notificationBadgeAuthorized | Boolean | 允許宿主通知帶有標記的開關(僅 iOS 有效) | ios 最低支持版本 3.110.3; 開發(fā)者工具暫不支持 | 暫不支持 |
notificationSoundAuthorized | Boolean | 允許宿主通知帶有聲音的開關(僅 iOS 有效) | ios 最低支持版本 3.110.3; 開發(fā)者工具暫不支持 | 暫不支持 |
cameraAuthorized | Boolean | 允許宿主使用攝像頭的開關 | 安卓最低支持基礎庫版本 3.110.3; ios 最低支持版本 3.110.3; 開發(fā)者工具暫不支持 | 暫不支持 |
locationAuthorized | Boolean | 允許宿主使用定位的開關 | 安卓最低支持基礎庫版本 3.110.3; ios 最低支持版本 3.110.3; 開發(fā)者工具暫不支持 | 暫不支持 |
microphoneAuthorized | Boolean | 允許宿主使用麥克風的開關 | 安卓最低支持基礎庫版本 3.110.3; ios 最低支持版本 3.110.3; 開發(fā)者工具暫不支持 | 暫不支持 |
locationEnabled | Boolean | 地理位置的系統(tǒng)開關 | 安卓最低支持基礎庫版本 3.110.3; ios 最低支持版本 3.110.3; 開發(fā)者工具暫不支持 | 暫不支持 |
wifiEnabled | Boolean | Wi-Fi 的系統(tǒng)開關 | 安卓最低支持基礎庫版本 3.110.3; ios 最低支持版本 3.110.3; 開發(fā)者工具暫不支持 | 暫不支持 |
safeArea | Object | 在豎屏正方向下的安全區(qū)域 | 安卓最低支持基礎庫版本 3.110.3; ios 最低支持版本 3.110.3; 開發(fā)者工具暫不支持 | 暫不支持 |
代碼示例 1:屬性全集
<view class="wrap">
<view class="card-area">
<view class="list-area border-bottom" s-for="item in infoList">
<text class="list-item-key-4">{{item.label}}:</text>
<text class="list-item-value">{{item.value}}</text>
</view>
</view>
<view class="swan-security-padding-bottom flex-button">
<button bindtap="getSystemInfo" type="primary" hover-stop-propagation="true">點擊獲取系統(tǒng)信息</button>
</view>
</view>
Page({
data: {
infoList: [{
label: '手機品牌',
key: 'brand',
value: ''
}, {
label: '手機型號',
key: 'model',
value: ''
}, {
label: '使用窗口寬',
key: 'windowWidth',
value: ''
}, {
label: '使用窗口高',
key: 'windowHeight',
value: ''
}, {
label: '狀態(tài)欄高',
key: 'statusBarHeight',
value: ''
}, {
label: '導航欄高',
key: 'navigationBarHeight',
value: ''
}, {
label: '宿主版本',
key: 'version',
value: ''
}, {
label: '操作系統(tǒng)',
key: 'system',
value: ''
}, {
label: '客戶端平臺',
key: 'platform',
value: ''
}, {
label: '屏幕寬度',
key: 'screenWidth',
value: ''
}, {
label: '屏幕高度',
key: 'screenHeight',
value: ''
}, {
label: '用戶字體',
key: 'fontSizeSetting',
value: ''
}, {
label: '基礎庫版本',
key: 'SDKVersion',
value: ''
}, {
label: '宿主平臺',
key: 'host',
value: ''
}, {
label: '宿主平臺版本',
key: 'swanNativeVersion',
value: ''
}, {
label: '屏幕密度',
key: 'devicePixelRatio',
value: ''
}, {
label: 'DPI',
key: 'pixelRatio',
value: ''
}, {
label: '宿主語言',
key: 'language',
value: ''
}]
},
getSystemInfo(e) {
swan.getSystemInfo({
success: res => {
console.log('getSystemInfo success', res);
// 更新數(shù)據(jù)
this.updateInfoList(res);
},
fail: err => {
console.log('getSystemInfo fail', err);
swan.showToast({
title: '獲取失敗',
icon: 'none'
});
}
});
},
clearClick() {
this.updateInfoList({});
},
updateInfoList(res) {
let infoList = this.data.infoList;
for (let item of this.data.infoList) {
if (res[item.key] === '') {
item.value = '暫無';
}
else {
item.value = res[item.key];
}
}
this.setData('infoList', infoList);
}
});
參考示例 1: 開發(fā)者一般在模擬頂部導航欄時用到 statusBarHeight 屬性
<!-- 代碼鏈接中為自定義組件寫法,可進行多頁面復用 -->
<view class="nav-box">
<view class="top-title" style="margin-top:{{statusBarHeight}}px">
<view class="back-icon-wrap" bindtap="back">
<image class="back-icon" src="/images/back.png"></image>
</view>
<view class="page-title">
<view class="page-title-china">{{chinaName}}</view>
<view class="page-title-english">{{engName}}</view>
</view>
</view>
</view>
<!-- 占位元素,防止接下來的頁面內(nèi)容被導航欄遮擋 -->
<view style="padding-top:{{statusBarHeight + 0.53}}px"></view>
methods: {
created() {
swan.getSystemInfo({
success: res => {
console.log('getSystemInfo success', res);
this.setData({
'statusBarHeight': res.statusBarHeight
});
},
fail: err => {
console.log('getSystemInfo fail', err);
}
});
}
}
參考示例 2: safeArea 屬性
<view class="wrap">
<view class="card-area">可使用窗口高度:{{windowHeight}}</view>
<view class="card-area">屏幕高度:{{screenHeight}}</view>
<view class="card-area">安全區(qū)域bottom:{{safeArea}}</view>
<button bind:tap="getSystemInfo" type="primary">獲取數(shù)據(jù)</button>
</view>
Page({
getSystemInfo(e) {
swan.getSystemInfo({
success: res => {
this.setData({
screenHeight: res.screenHeight,
windowHeight: res.windowHeight,
safeArea: res.safeArea.bottom
});
if ( res.safeArea.bottom !== res.screenHeight) {
swan.showToast({
title: '需要適配',
icon: 'none'
});
}
},
fail: err => {
swan.showToast({
title: '獲取失敗',
icon: 'none'
});
}
});
}
});
<view class="wrap">
<button bindtap="getSystemInfo">
是否是iphoneX
</button>
<view class="card-area"> {{isIPhoneX}} </view>
</view>
Page({
data: {
isIPhoneX: ''
},
getSystemInfo(e) {
swan.getSystemInfo({
success: systemInfo => {
console.log('getSystemInfo success', systemInfo);
if (systemInfo.model && (systemInfo.model.indexOf('iPhone X') > -1) || (systemInfo.model === 'iPhone Simulator <x86-64>' && systemInfo.screenWidth === 375)) {
this.setData({
isIPhoneX: true
})
}
else {
this.setData({
isIPhoneX: false
})
}
},
fail: err => {
swan.showToast({
title: '獲取失敗'
});
}
});
}
});
錯誤碼 | 說明 |
---|---|
201 | 解析失敗,請檢查調(diào)起協(xié)議是否合法。 |
202 | 解析失敗,請檢查參數(shù)是否正確。 |
402 | 安全性檢查:訪問控制校驗失敗。 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: