uni-app项目中引入原生插件后,编译为快手小程序报 t.requireNativePlugin is not a function
uni-app项目中引入原生插件后,编译为快手小程序报 t.requireNativePlugin is not a function
示例代码:
const dcRichAlert = uni.requireNativePlugin('DCloud-RichAlert')
操作步骤:
复现步骤:
- 在manifest.json中启用原生插件
- 引入原生插件:
const dcRichAlert = uni.requireNativePlugin('DCloud-RichAlert') - 运行方式选择快手小程序,然后在快手小程序开发者工具中运行项目,直接报这个错误
预期结果:
不报错
实际结果:
报 t.requireNativePlugin is not a function
bug描述:
复现步骤:
- 在manifest.json中启用原生插件
- 引入原生插件:
const dcRichAlert = uni.requireNativePlugin('DCloud-RichAlert') - 运行方式选择快手小程序,然后在快手小程序开发者工具中运行项目,直接报这个错误

更多关于uni-app项目中引入原生插件后,编译为快手小程序报 t.requireNativePlugin is not a function的实战教程也可以访问 https://www.itying.com/category-93-b0.html
条件编译部分怎么写的?
更多关于uni-app项目中引入原生插件后,编译为快手小程序报 t.requireNativePlugin is not a function的实战教程也可以访问 https://www.itying.com/category-93-b0.html
没有写条件编译,在H5下是不会报错的
回复 葱子: 之前编译到其他小程序平台正常吗?
回复 DCloud_UNI_GSQ: 抱歉,是我的代码有误, uni.requireNativePlugin必须写在条件编译里面
了解了,需要写条件编译,才不会报错
微信小程序也报错,这需要怎么解决
在uni-app中,原生插件(Native Plugin)是为App平台设计的,无法在小程序平台(包括快手小程序)中使用。uni.requireNativePlugin是App端特有的API,用于调用原生模块的功能,而小程序平台没有对应的实现。
当你在代码中调用uni.requireNativePlugin,并编译到快手小程序时,由于该API不存在,会抛出t.requireNativePlugin is not a function错误。这是预期行为,因为小程序环境不支持原生插件。
解决方案:
- 条件编译:使用条件编译将原生插件相关代码限制在App平台,避免在小程序平台执行。
在调用插件的地方也需添加条件编译:// #ifdef APP-PLUS const dcRichAlert = uni.requireNativePlugin('DCloud-RichAlert'); // #endif// #ifdef APP-PLUS dcRichAlert.show({ ... }); // #endif


