编写package.json文件

  • 编写package.json文件

image

image

iOS 插件包 至少需要包含:package.json文件 和 ios文件夹(名称必须是小写的ios)里面包含 .a (.a库必须是lib开头命名,比如libWeexDCRichAlert.a)或framework。

  • 生成.zip包

将DCloud-RichAlert文件夹打成zip包,zip包的名称为(DCloud-RichAlert.zip)然后准备提交插件市场,其中DCloud-RichAlert文件夹名称和package.json 里id的值一致,zip包的名称是id值。

  • 如果想要共享给其他开发者,把这个插件提交插件市场

提交插件到DCloud插件市场

不提交插件市场,也可以把生成的插件放到HBuilderX里,然后提交云端打包使用,提交到云端打包之前确保插件在本地是调试通的,否则云端打包出问题,增加排查问题的难度。

编写原生代码时注意事项

目前 HBuilderX 正式版云端打包机使用的Xcode版本为 10.X,Xcode11.0 及以上版本对@available(, *)的实现做了调整打包后的.a库不兼容低版本的Xcode, 所以如果使用Xcode 11.0及以上版本开发插件并且插件中代码用到了@available(, *)关键字请按下图修改,否则可能导致打包失败。报错 Undefined symbols "___isPlatformVersionAtLeast" (使用 HBuilderX alpha 版本没有此问题,正式版云端打包机近期会更新到最新的Xcode版本)

image

OKR 499

1 工作时间:14:00-15:00

2 工作目标:

  • 商城完善、优化,API对接,UniApp插件

3 工作过程:

  • 整理文档,分析源码,编码

4 工作结果

252-eshop

uni-app原生插件(native plugin)开发指南

概述

传统webview的原生扩展是通过webview桥方式,比如5+app。 uni-app的js运行在独立的jscore里,而不是webview里,它的原生扩展是另一套模式,是基于开源项目weex的0.26.0版本架构的扩展机制。

weex的插件也可以拿到uni-app生态中使用。

从开发方式相比,uni-app的原生插件开发模式更简单。webview桥方式需要在原生层和js层分别做很多工作。而uni-app的原生插件开发主要在原生层做封装即可。 从使用方式相比,5+的原生扩展需要离线打包,而uni-app的插件可以在线打包,插件市场还有很多优秀原生插件可拿来即用。

uni-app的原生插件分两种类型:

  • Module模式:能力扩展,无嵌入窗体的UI控件。大部分插件都是属于此类,比如调用计步器API。 代码写法为通过js进行require,然后调用该插件对象的方法。如涉及一些弹出框、全屏ui,也仍然属于Module模式。类似于前端里的js sdk。

  • Component模式:在窗体中内嵌显示某个原生ui组件。比如窗体局部内嵌某个地图厂商的map组件,上下混排其他前端内容,就需要把这个原生地图sdk封装为Componet模式。代码写法与vue组件相同,在template里写组件标签。类似于前端里的vue组件。 在uni-app中支持vue和nvue两种页面,vue页面基于webview排版引擎渲染,nvue页面基于原生排版引擎渲染。

  • vue页面中仅支持使用Module类型的原生插件,不支持调用同步方法返回数据

  • nvue页面中支持使用Module和Component两种类型的原生插件。也就是如需实现嵌入页面的ui组件,前提是该页面需要使用nvue编写。

uni原生插件上线步骤

  • 下载5+ SDK配置原生开发环境,在原生环境中开发调试插件业务逻辑

    • Android平台需使用AndroidStudio

    • iOS平台需XCode10+(需Mac环境)

  • 开发调试完成后导出原生库文件

    • Android平台可以是jar或aar包

    • iOS平台可以是a或framework包

  • 生成uni原生插件包(zip)

    • 配置package.json文件

    • 与前面导出的原生库文件一起打包

  • 在HX中使用uni原生插件包提交云端打包,验证uni原生插件包是否正确

  • 上传uni原生插件包到插件市场审核

  • 审核成功后其他开发者可购买、使用uni原生插件

原文地址:https://www.cnblogs.com/liuxiaokun/p/12686683.html