uni小程序sdk 版本需 ≥ 2.3.4

# 概述

扩展原生能力指的是将您原生开发的功能通过一定规范暴露给 uni小程序环境,然后即可在 uni小程序应用中调用您的原生功能。

# 扩展方式

通过扩展API registerModule 扩展 module,小程序再通过 uni.requireNativePlugin 引入模块

# 扩展 module

下面以TestModule为例

# 1. 注册 module

import { registerModule } from '@dcloudio/uni-app-runtime'

registerModule("TestModule", {
  test: (a: number, b: number): number => {
    return a + b
  }
} as ESObject)

上面的示例还可以把 ESObject 对象单独写到某个 .ets 文件,并通过 export 和 import 导出导入

TestModule.ets文件内容

export default {
  test: (a: number, b: number): number => {
    return a + b;
  }
} as ESObject

通过import导入

import { registerModule } from '@dcloudio/uni-app-runtime'
import TestModule from './TestModule'

registerModule("TestModule", TestModule)

# 2. 在 uni小程序 中调用 module 内的函数

<template>
	<div>
		<button type="primary" @click="test">调用模块的test函数</button>
	</div>
</template>

<script>
	// 获取 module
	const testModule = uni.requireNativePlugin("TestModule")
	export default {
		methods: {
			test() {
				// 调用testModule模块中的test函数
				let res = testModule.test(1, 2)
				console.log('res: ', res)
			}
		}
	}
</script>