百度小程序开发问题汇总

百度智能小程序简介 官网 官方文档

  • 智能小程序是一种新的开放能力,开发者可以快速地开发一个智能小程序。通过搜索,用户可以在手百 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中,会过滤掉这些标签。
      • 不能够正常调试和查看class样式信息
    • 这些标签不能绑定事件。例如bindtap
      • 解决方案: 换成,
    • 样式文件不支持这些标签选择器。但是使用class属性可正常添加css样式
      • .container ul li 不能正常设置css样式
      • 解决方案: 渲染层可修改为
        ,css使用class选择器 .container .ul .li可正常设置样式
  • 渲染组件时不能使用<=字符串
    • 例如:
      {{ 1 <= 2 ? 'yes' : 'no' }}
      ,会导致渲染出现异常。ps: 我怀疑渲染内部使用正则匹配,会匹配到 <=这个关键字符串
    • 解决方案:换成大于 >即可
  • 渲染组件,某一个属性为对象时,需要用{{{}}}
    • 例如: