DCloud_App_Array
DCloud_App_Array
  • 发布:2018-12-26 12:14
  • 更新:2024-09-25 09:11
  • 阅读:103488

uni-app原生插件(native plugin)使用说明

分类:uni-app

新版原生插件开发文档已发布,请移步:https://nativesupport.dcloud.net.cn/

此文档将不再更新维护

过去DCloud的app产品虽然也可以自行扩展原生能力,但文档和接口设计的不太好,也没有云打包原生插件的能力,也没有插件市场。
如今这些问题都解决了。
HBuilderX1.4起,提供了全新的插件开发方式(同weex插件),支持云打包原生插件,插件市场也同步上线。
按以下步骤操作使用原生插件

第一步:购买或下载uni-app原生插件

从HBuilderX1.9.0版本开始,uni原生插件支持设置为免费或收费,为了保护插件开发者权益,收费插件只支持云端打包,不提供插件下载

  • 使用前需先登录uni原生插件市场,在插件详情页中购买,免费插件也可以在插件市场0元购。购买后才能够云端打包使用插件
    购买插件时请选择正确的appid,以及绑定正确包名
  • 对于免费的uni原生插件,也可以先下载到本地再提交云端打包(不推荐)
    详情参考:本地uni-app原生插件提交云端打包

第二步:使用自定义基座打包uni原生插件 (注:请使用真机运行自定义基座)

使用uni原生插件必须先提交云端打包才能生效,购买插件后在应用的manifest.json页面的“App原生插件配置”项下点击“选择云端插件”,选择需要打包的插件:


如果插件已下载到本地,点击“选择本地插件”,选择需要打包的插件
直接云端打包后无法打log,不利于排错,所以一般先打一个自定义基座,把需要的原生插件打到真机运行基座里,然后在本地写代码调用调试。
注意,自定义基座不是正式版,真正发布时,需要再打正式包。使用自定义基座是无法正常升级替换apk的。

第三步:开发调试uni-app原生插件

  • 在vue页面或nvue页面引入这个原生插件。
    使用uni.requireNativePlugin的api,参数为插件的id。
    例如:
    const dcRichAlert = uni.requireNativePlugin('DCloud-RichAlert')
  • 根据插件市场的插件介绍页面的文档编写js代码,调用其能力
    注意如果前端代码需要给原生sdk传路径,则需要传手机文件的绝对路径。

第四步:打包发布

使用自定义基座开发调试uni-app原生插件后,不可直接将自定义基座apk作为正式版发布。
应该重新提交云端打包(不能勾选“自定义基座”)生成正式版本。

uni-app原生插件使用常见问题

如果你想自己开发原生插件,参考
uni-app原生插件开发指南
Android:https://ask.dcloud.net.cn/article/35416
iOS:https://ask.dcloud.net.cn/article/35415

更多uni-app原生插件文档参考:uni-app原生插件开发指南

7 关注 分享
Trust 5个萝卜 sonicsunsky Neil_HL LuxSun 诺墨 剑心无间

要回复文章请先登录注册

1***@qq.com

1***@qq.com

写的文档啥玩意啊,真服了
2024-09-25 09:11
1***@qq.com

1***@qq.com

const dcRichAlert = uni.requireNativePlugin('DCloud-RichAlert') 为什么通过这个方法读取本地的插件显示是空对象
2024-08-22 17:05
x***@newbeiyang.com

x***@newbeiyang.com

回复 w***@163.com :
请问这个怎么处理的?云端打包正常,本地打包就不行了
2023-12-26 11:23
8***@qq.com

8***@qq.com

请问免费的插件如何绑定APPID?
2023-12-19 15:00
8***@qq.com

8***@qq.com

请问帮费的插件如何绑定APPID
2023-12-19 14:56
k***@163.com

k***@163.com

请问打包好原生插件基座后运行Android报错如何输出日志
2023-11-24 14:41
了了伢生

了了伢生

请问下,原生SDK jar里有调用到so库的,然后打成aar插件供uniapp调用接口,程序包找不到so库了,我把这个so库分cpu架构文件放到android 插件同级下面,也一样报错,话说这个该放哪呢有大佬知道嘛
2023-05-23 16:38
AyoDosahard

AyoDosahard

你好 我使用 uniapp项目,使用 var mpaasScanModule = uni.requireNativePlugin("xyyl"),在 钉钉开发者工具中运行测试 报错:vendor.js:623 [Vue warn]: Error in mounted hook: "TypeError: uni.requireNativePlugin is not a function"
2023-04-06 12:35
qingyou

qingyou

我购买的插件 填写的包名是跟我云端打包的安卓包名是一样的为什么提示和插件绑定的不一样 呢
2022-05-12 10:20
DCloud_App_Array

DCloud_App_Array (作者)

回复 s***@gmail.com :
5+ App项目(5+ API)不能调用uni原生插件,请升级到uni-app项目。
2021-12-06 16:18