字节小程序坑攻略最近公司要做一个小程序抖音,废话不多说,说说我遇到的坑。首先,本人没有写小程序的经验,也是白手起家,所以这里只记录一些基本的错误,大家不要喷。先去文档Byte小程序文档1.抖音小程序音频播放的一些问题Byte小程序没有组件,一开始以为没有办法播放声音,后来看到它在API中,您可以使用api进行媒体管理。小程序媒体管理API我这里主要说一下声音播放,分为两部分:1.BackgroundAudioManager2.InnerAudioContext。第一个作为背景音乐播放,第二个只能在小程序内部使用。当您退出小程序时,它会自动停止播放。1.设置src后的crash问题项目完成的时候,在android测试没有问题,但是在appleios上,每次播放音频就crash。后来发现音频的网址有汉字和空格。所以只要在设置前使用encodeURI(url),就不会崩溃。2.使用事项音频播放全局只有一个变量,所以只能播放一段音频,设置src后会自动替换原来的播放内容。获取全球唯一的后台音频管理器BackgroundAudioManager。多次调用api返回的是同一个实例,在多个页面使用时会操作同一个context对象。当小程序切到后台时,如果正在播放音频,可以继续播放。但是后台状态不能通过调用API来操作音频的播放状态。2.获取用户隐私数据解密问题我把解密写在js里,直接上传代码varCryptoJS=require("/wrdes.js");//解密敏感信息functiondecryptInfo(encryptedData,sessionKey,iv){//console.log("加密数据:"+加密数据);//console.log("sessionKey:"+sessionKey);//console.log("iv:"+iv);varaeskey=CryptoJS.enc.Base64.parse(sessionKey);//解密方法vardesiv=CryptoJS.enc.Base64.parse(iv);vardecrypted=CryptoJS.AES.decrypt(encryptedData,aeskey,{iv:desiv,模式:CryptoJS.mode.CBC,填充:CryptoJS.pad.Pkcs7});console.log(decrypted.toString(CryptoJS.enc.Utf8));returndecrypted.toString(CryptoJS.enc.Utf8);}3.其他小问题app.js中设置的全局变量当其他页面发生变化时,不会触发其他页面的更新,需要手动更新。我直接在onshow方法中重新赋值。网络请求必须是https,应该是为了安全。别忘了设置域名白名单,想到另一个。字节小程序css默认的box-size是content,写页面的时候感觉很不爽。一直很明白为什么页面总是出错,尤其是设置了widt:100%后padding总是会被挤出来,height也有同样的问题。页面中使用的数据可以直接使用this,组件中需要使用this.data
关于字节小程序踩过的坑~快来一起避坑吧!相关文章