使用蘋果登錄首先需要在蘋果開發者后台開啟 App 的 Sign In with Apple
服務
1.登錄到蘋果開發者后台 編輯對應的 Identifier
勾選 Sign In with Apple
服務並保存
2.勾選或取消服務,會導致之前的 profile 描述文件失效,不需要新建,只要點擊 Edit 重新編輯對應的 profile文件,然后保存下載使用新的profile文件即可
在 HBuilderX 編輯項目的 manifest.json ,在 App SDK配置中找到蘋果登錄,並勾選。
登錄按鈕樣式
蘋果對登錄按鈕樣式有要求,請按照蘋果要求統一設置登錄按鈕的樣式,否則審核可能會被拒絕
需要注意的是:
- 按鈕必須在顯著的位置(避免滑動屏幕才能看到)
- 登錄按鈕有三種外觀:白色,帶有黑色輪廓線的白色和黑色,其他設計可能會影響審核;
- 按鈕圓角范圍及按鈕最小尺寸也有要求;
- 具體規則請參考蘋果 官方文檔
注:因為是 iOS13+ 系統才支持蘋果登錄,所以建議在App的界面入口判斷下,只有 iOS13 才顯示Apple登錄的選項
onLoad() { uni.getSystemInfo({ success:(res) => { // console.log(res) this.system = res.system // ios this.platform = res.platform // 14.3 } }) },
<!-- 蘋果登錄 --> <view class="item-1-2" v-if="platform == 'ios' && system >= '13'" @click="LoginForApple">
<image mode="widthFix" src="../../../static/center-icon/OS_Apple-2.png"></image>
</view>
// 蘋果登錄 LoginForApple() { uni.getProvider({ service: 'oauth', success: function (res) { // console.log(res.provider) if(~res.provider.indexOf('apple')) { uni.login({ provider: 'apple', success: loginRes => { uni.getUserInfo({ provider: 'apple', success: userInfoRes => { console.log('獲取用戶信息成功'+JSON.stringify(userInfoRes)) } }) }, fail: err => { // console.log('apple登錄失敗' + JSON.stringify(err)) uni.showToast({ title:'登錄失敗', icon:'none' }) } }) } }, fail: err => { uni.showToast({ title:'登錄失敗', icon:'none' }) } }) }
appleInfo
屬性 | 類型 | 說明 |
---|---|---|
user | String | 蘋果用戶唯一標識符 |
state | String | 驗證信息狀態 |
String | 用戶共享的可選電子郵件 | |
fullName | Object | 用戶共享的可選全名 |
authorizationCode | String | 驗證數據 |
identityToken | String | Web令牌(JWT) |
realUserStatus | Number | 標識用戶是否為真實的人 0:當前平台不支持,忽略該值;1:無法確認;2:用戶真實性非常高 |
scope | String | 返回信息作用域 |
fullName
屬性 | 類型 | 說明 |
---|---|---|
namePrefix | String | 名字前綴,頭銜、敬稱 |
givenName | String | 名字 |
middleName | String | 中間名 |
familyName | String | 姓 |
nameSuffix | String | 名字后綴,學位、榮譽 |
nickName | String | 昵稱 |
授權失敗 code 說明
code | 說明 |
---|---|
1000 | 未知錯誤 |
1001 | 取消授權 |
1002 | 返回值無效 |
1003 | 請求未處理 |
1004 | 授權失敗 |