写点什么

跨平台应用开发进阶 (四十) 自定义插件及引用

  • 2022-12-24
    江苏
  • 本文字数:1122 字

    阅读完需:约 4 分钟

跨平台应用开发进阶(四十)自定义插件及引用

一、前言

正如将可复用功能封装为自定义组件以供他人使用一样,在uni-app开发框架中提供了另一种形式的自定义插件,并可将该插件提交至uni-app插件市场

二、插件制作

制作插件前,首先要清楚实现插件的基本思路:


  1. 插件需要实现什么效果;

  2. 建立插件模板,先把架子搭起来,完成插件基本样式、大致效果;

  3. 插件基本逻辑是怎样的;

  4. 准备好插件的数据输入,即分析好逻辑,定义好插件里面的数据、类型;

  5. 准备好插件的数据输出,即根据插件逻辑,做好要暴露出来的方法;

  6. 注册、调用。

三、离线插件集成应用示例

以集成听云 APM 离线插件为例,首先将离线插件放入项目目录nativeplugins中,



然后,在项目manifest.json可视化视图 APP 原生插件配置中导入本地插件。



导入成功后,可在源码视图中app-plus->nativePlugins看到配置的插件信息。


"nativePlugins" : {    "tingyunAppUniPlugin" : {        "__plugin_info__" : {            "name" : "tingyunAppModule",            "description" : "tingyunAppuni插件",            "platforms" : "iOS",            "url" : "",            "android_package_name" : "",            "ios_bundle_id" : "",            "isCloud" : false,            "bought" : -1,            "pid" : "",            "parameters" : {}        }    }}
复制代码


打开插件目录下的package.json文件,可查看插件详细配置信息。


{    "name": "tingyunAppModule",    "id": "tingyunAppUniPlugin",    "version": "1.0.0",    "description": "tingyunAppuni插件",    "_dp_type": "nativeplugin",    "_dp_nativeplugin": {        "ios": {            "plugins": [{                "type": "module",                "name": "tingyunAppUniPlugin-tingyunAppModule",                "class": "tingyunAppModule"            }],            "frameworks": ["libz.tbd","WebKit.framework","Security.framework","CoreTelephony.framework","SystemConfiguration.framework","JavaScriptCore.framework","CoreGraphics.framework","QuartzCore.framework","CFNetwork.framework","libresolv.tbd","libc++.tbd"],            "integrateType": "framework",            "deploymentTarget": "9.0"        }    }}
复制代码


并在引用处通过以下方式引入插件。


var tingyunApp = uni.requireNativePlugin('tingyunAppUniPlugin-tingyunAppModule')
复制代码


注意⚠️:uni.requireNativePlugin() api 中的参数为插件package.json文件中_dp_nativeplugin.ios.plugins.name属性值,否则会发生插件引用失败的问题。

四、拓展阅读

发布于: 2022-12-24阅读数: 32
用户头像

No Silver Bullet 2021-07-09 加入

岂曰无衣 与子同袍

评论

发布
暂无评论
跨平台应用开发进阶(四十)自定义插件及引用_uni-app_No Silver Bullet_InfoQ写作社区