百度智能小程序簡介 官網 官方文檔
-
智能小程序是一種新的開放能力,開發者可以快速地開發一個智能小程序。通過搜索,用戶可以在手百 App 內被便捷地獲取和傳播。
-
智能小程序現已經進入入駐申請階段,目前僅面向企業、政府、媒體及其它組織等非個人主體開放申請,個人開發者暫時無法申請。
由于百度智能小程序剛剛開放第三方申請。開發基礎設施與開發體驗極度不是非常理想,目前還沒有建立完善的社區體系。因此開發中遇到了問題大多靠自己分析,大部分是從微信小程序項目遷移至百度小程序遇到的,做了簡單的總結。
開發中問題匯總
-
整體與微信程序開發保持一致,相似性有90%以上
-
文檔、開發工具、框架設計、api接口均保持一致。即微信小程序可低成本遷移至百度小程序。對于某一具體功能開發具有相似性,可參考微信小程序邏輯。例如:登陸認證、應用授權等
-
開發上的區別(可全局替換)
-
文件后綴不同。例如:模版文件:.wxml->.swan,樣式文件: .wxss->.css
-
渲染時部分指令不同。例如:條件渲染:wx:if->s-if等
-
全局接口調用對象不同。例如: wx.xxx->swan.xxx
-
由于模擬器IDE可以在未登錄時使用,應該時刻注意,IDE的登陸狀態
-
例如:未登錄時會造成swan.getUserInfo調用失敗。
-
div\p\ul\li\span\i等html標簽,特殊情況
-
模擬器調試面板swan Tab中,會過濾掉這些標簽。
-
這些標簽不能綁定事件。例如bindtap
-
解決方案: 換成<view>,<button>百度小程序支持的標簽即可
-
樣式文件不支持這些標簽選擇器。但是使用class屬性可正常添加css樣式
-
.container ul li 不能正常設置css樣式
-
解決方案: 渲染層可修改為<ul class="ul"><li class="li"></li></ul>,css使用class選擇器 .container .ul .li可正常設置樣式
-
渲染組件時不能使用<=字符串
-
例如:<div>{{ 1 <= 2 ? 'yes' : 'no' }}</div>,會導致渲染出現異常。ps: 我懷疑渲染內部使用正則匹配,會匹配到 <=這個關鍵字符串
-
解決方案:換成大于 >即可
-
渲染組件,某一個屬性為對象時,需要用{{{}}}
-
例如:<template is="some-template" data="{{{...detail}}}" />
-
不支根據數據持動態引入<template>
-
例如: 聲明模版<template is="template-1" >123</template>。應用模版<template is="template-{{id}}" data="{{{...detail}}}" />, 當id=1時,不能正確引入template-1。但是如果直接寫死template-1可以直接引用。
-
解決方案: 可使用條件渲染動態引入模版。<block s-if="{{ id == 1}}"><template is="template-1" data="{{{...detail}}}" /></block>
-
<live-player />不能正常播放.m3u8格式視頻
-
目前正在尋找原因
-
解決方案: 使用<video>代替即可
-
<cover-view>模擬器盒模型異常異常,但是真機預覽支持。
-
例如: overflow:hidden;display:inline-block;max-width:100rpx等屬性無效。即不能根據內容撐開寬度,或者折疊文字,只可以設置固定寬度,默認是'block'。
-
<cover-image>在地圖上顯示不出來,在模擬器上可以。
-
自定義組件不能2層嵌套<template>
相關資源
-
百度小程序開發資源匯總 目前暫不完善
-
wx2rm 微信小程序項目轉換為百度小程序的工具
-
taro 框架官方正準備支持百度小程序
|