[TOC]
## HBuilder基座介紹
> (1) 點擊菜單欄“運行”->“運行到手機或模擬器”,會在手機上安裝“HBuilder應用”(或者叫HBuilder基座),在應用開發過程中HBuilder會將應用資源實時同步到基座并刷新,從而實時查看修改效果;
> (2) 這里的“HBuilder基座” 使用的是DCloud申請的第三方SDK配置,開發者設置的第三方SDK配置信息不會生效。如果開發者希望自己的第三方SDK配置生效,則需自定義基座;
## 自定義基座介紹
> (1) 自定義基座是使用開發者申請的第三方SDK配置生成的基座應用,用于真實開發環境下的運行效果
> (2) 在HBuilder中點擊菜單欄“運行->運行到手機或模擬器->制作自定義基座”生成自定義基座安裝包
> (3) 打包成功后需要點擊菜單欄“運行->運行到手機或模擬器->運行基座選擇->自定義基座”來開啟自定義基座功能
> (4) 點擊菜單欄“運行”->“運行到手機或模擬器”,可實時在手機上查看運行效果
## 自定義基座流程
### andriod基座
#### 1. 運行到手機或模擬器 > 制作自定義調試基座

#### 2. 生成 Android 簽名證書
> A) 本地安裝jdk,并配置系統環境
> B) 使用keytool生成簽名證書 (xx.keystore)
```
// testalias是證書別名
// test.keystore是證書文件名稱
keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore
```
#### 3. 打包自定義基座

> 打包完成后,即可使用該自定義基座

### ios基座
#### 1. 生成iOS證書(.p12)和描述文件(.mobileprovision)
> 申請方式:https://ask.dcloud.net.cn/article/152
#### 2. 打包自定義基座

## 兩者差別
> (1) uni-app原生插件
必須使用自定義基座,HBuilder基座不支持調用uni-app原生插件。
> (2) 地圖
應用運行顯示效果無差別,地圖的配置信息只是校驗開發者的合法性。
> (3) 登錄鑒權
授權頁面顯示效果不同,HBuilder基座顯示的是“HBuilder”應用,自定義基座顯示的是開發者配置的應用信息。
> (4) 支付
> * 支付寶
> 無差別,支付寶不校驗客戶端信息。
> * 微信支付
> HBuilder基座需要使用DCloud的微信支付服務器生成訂單才能完成支付,收款方是DCloud申請的賬號。
如果應用中需要調試微信支付功能,則需要使用自定義基座,使用從微信申請的配置生成訂單,收款方是開發者申請的賬號。
>
> (5) 推送
> HBuilder基座需要使用DCloud賬號登錄推送平臺才能下發推送消息(目前開發者無法在此環境下發推送消息)。
如果需要調試推送業務,則需要使用自定義基座,開發者登錄到推送平臺下發推送消息。
> (6) 分享
> 分享后顯示效果不同,HBuilder基座顯示的分享來源是“HBuilder”應用,自定義基座顯示的分享來源是開發者配置的應用信息。
> (7) 語音識別
> * 訊飛語音識別
無差別
> * 百度語音識別
HBuilder基座統一使用DCloud向百度語音云平臺申請的配置進行語音識別,所有統計數據在DCloud賬號下。
如果僅做簡單的語音識別,HBuilder基座可正常使用,如果需要使用百度語音云平臺配置生效,則需要使用自定義基座。
>
> (8) 統計
> HBuilder基座所有統計數據提交到DCloud申請的統計平臺賬號下。
> 自定義基座統計數據提交到開發者申請的統計平臺賬號下。
> 備注:
使用自定義基座各種SDK配置才能生效, 但是使用自定義基座進行云端打包后,HX提示【自定義基座不可用于正式發布,其脫離HBuilderX無法更新應用資源】,手機安裝打出來的包提示【當前應用運行在測試環境,發布正式版請打正式包】。原因是因為自定義基座和HBuilder自帶基座都是用于開發調試。使用自定義基座開發調試uni-app原生插件后,不可直接將自定義基座apk作為正式版發布。云打包時若勾選了“自定義基座”,打出來的是測試包;應該重新提交云端打包(`不能勾選“自定義基座”`)生成正式版本,正式包的SDK配置會自動生效。
> 打正式包請取消勾選“自定義基座”

[https://ask.dcloud.net.cn/article/35115](https://ask.dcloud.net.cn/article/35115)
> 參考資料:
> https://www.jianshu.com/p/b4b970011188
> https://www.jianshu.com/p/9c3d1222828e
- 基礎知識
- UNI核心介紹
- flex布局
- 生命周期
- 全局方法
- 組件定義
- 自定義組件
- 全局組件
- 組件之間的數據傳輸
- 條件編譯
- 自定義頭部
- 節點信息 (SelectorQuery)
- vuejs基礎語法
- 頁面跳轉以及參數傳遞
- 事件的監聽注冊以及觸發
- css3動畫
- block的妙用
- mixin (混入)
- uniapp快捷鍵
- vuex狀態管理
- 實用功能
- 獲取服務提供商
- 啟動頁 / 啟動界面
- 引導頁
- tabbar配置
- 頭部導航欄基礎設置
- 上拉下拉(刷新/加載)
- 第三方登錄
- 第三方分享
- 推送通知 之 unipush
- scroll-view雙聯動
- 配置iOS通用鏈接(Universal Links)
- 本地緩存操作
- 升級/更新方案
- 熱更新
- 圖片上傳
- 搜索頁實現
- canvas繪圖助手
- 地圖定位
- 第三方支付————todo
- 分類輪播
- 清除應用緩存
- uniapp與webview的實時通訊
- 視頻-----todo
- 聊天----todo
- 長列表swiper左右切換
- 第三方插件
- uview
- mescroll
- uCharts (圖表)
- 無名 (更新插件)
- 第三方模版
- 自定義基座
- 打包發行
- 要封裝的方法
- 緩存 cache.js
- 請求接口 request.js
- 工具類 util.js
- 小程序登錄 xcxLogin.js
- 版本更新 update.js
- 優質插件
- 更新插件----todo
- 語音
- 語音識別 (含上傳)
- 百度語音合成播報接口
- 官方常用組建
- input 輸入框
- image 圖片
- audio 音頻
- picker 選擇器
- video 視頻
- scroll-view 滾動視圖