• 甘肃网站制作|企业网站建设|域名注册|商标注册|网站制作推广|网站建设|企业邮箱|微信小程序|虚拟主机|服务器
  • 打开微信扫一扫,
    您还可以在这里找到我们哟

    关注我们

  • 帮助中心

    小程序开发问题

    由于百度智能小程序刚刚开放第三方申请。开发基础设施与开发体验极度不理想,目前还没有建立完善的社区体系。因此开发中遇到了问题大多靠自己分析,大部分是从微信小程序项目迁移至百度小程序遇到的,做了简单的总结。

    开发中问题汇总

    • 整体与微信程序开发保持一致,相似性有90%以上

      • 文件后缀不同。例如:模版文件:.wxml->.swan,样式文件: .wxss->.css

      • 渲染时部分指令不同。例如:条件渲染:wx:if->s-if

      • 全局接口调用对象不同。例如: wx.xxx->swan.xxx

      • 文档、开发工具、框架设计、api接口均保持一致。即微信小程序可低成本迁移至百度小程序。对于某一具体功能开发具有相似性,可参考微信小程序逻辑。例如:登陆认证、应用授权等

      • 开发上的区别(可全局替换)

      • 由于模拟器IDE可以在未登录时使用,应该时刻注意,IDE的登陆状态

        • 例如:未登录时会造成swan.getUserInfo调用失败。

      • div\p\ul\li\span\i等html标签,特殊情况

        • .container ul li 不能正常设置css样式

        • 解决方案: 渲染层可修改为<ul class="ul"><li class="li"></li></ul>,css使用class选择器 .container .ul .li可正常设置样式

        • 解决方案: 换成<view>,<button>百度小程序支持的标签即可

        • 不能够正常调试和查看class样式信息

        • 模拟器调试面板swan Tab中,会过滤掉这些标签。

        • 这些标签不能绑定事件。例如bindtap

        • 样式文件不支持这些标签选择器。但是使用class属性可正常添加css样式

        • 渲染组件时不能使用<=字符串

          • 例如:<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>

          • 解决方案: 外层嵌套一个<slot>标签