1.前言(废话)

公司项目需要把原本用uinapp开发的微信小程序想要在钉钉上也能使用,然后就打算用uniapp编译成钉钉小程序,看看是否有坑,不试不知道,一试吓一跳,官方没有提供钉钉的编译方式,按照网上文章的配置编译成钉钉小程序后,初步发现,uView-ui的icon没啦,然后样式和布局都奇奇怪怪的,排查的很久...(直接跳过),最终定位到原因,组件上的类名是有的,acss文件也是有的,acss文件里面的样式没有在标签上生效,也就是空白的,如下图

2.定位分析问题

是什么原因导致的呢?定位了很久,然后发现编译后自定义组件的json文件中新增了一个陌生的属性"styleIsolation": "apply-shared"

把这个属性去掉,样式就可以生效了;

3.解决问题

查询了这个属性有啥作用 参考 支付小程序文档自定义组件样式隔离 - 支付宝文档中心

按道理说应该没有影响的,同套代码跑支付宝小程序样式就能生效,但是跑钉钉小程序就有问题最后去钉钉小程序提交了咨询工单,得到答复是钉钉小程序不支持这个属性,配置了会有影响;

然后就想着怎么在uni-app编译的时候能够去掉"styleIsolation": "apply-shared",查找了很久,发现没有办法去掉!!(有知道的同学评论下,感谢!);我试过像微信小程序加个options,但是编译成钉钉小程序并不生效;

参考问答社区Uniapp中如何设置微信小程序自定义组件的options.styleIsolation?(为了能修改自定义组件样式) - DCloud问答

最终打算在编译后的钉钉小程序全局替换掉这个属性(废弃),欢迎评论区提供更好的解决方案!

参考帖子【报Bug】钉钉小程序不支持styleIsolation - DCloud问答是新版本的HBuilderX带来的问题,降低HBuilderX版本可解决;我降低到3.5.3版本可解决HBuilderX 历史版本

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐