提交 0002cc3c 编写于 作者: 杜庆泉's avatar 杜庆泉

remove doc

上级 db5c2ca1
<template>
<view>
<page-head :title="title"></page-head>
<view class="uni-btn-v uni-common-mt">
<button type="primary" @tap="testTimer">延迟任务</button>
<button type="primary" @tap="testInterval">定时任务</button>
<button type="primary" @tap="testClearInterval">关闭定时任务</button>
</view>
<view class="uni-btn-v uni-common-mt">
<button type="primary" @tap="testTimer">延迟任务</button>
<button type="primary" @tap="testInterval">定时任务</button>
<button type="primary" @tap="testClearInterval">关闭定时任务</button>
</view>
</view>
</template>
<script>
import {
doTimerTask,
doIntervalTask,
clearIntervalTask,
getDecorViewInfo
} from "../../../uni_modules/uts-advance";
export default {
......@@ -60,9 +63,11 @@
testClearInterval: function () {
console.log(this.taskId);
clearIntervalTask(this.taskId);
},
}
}
</script>
......
......@@ -10,11 +10,6 @@
</view>
</template>
<script>
// import {
// callWithoutParam,
// callWithStringParam,
// callWithJSONParam
// } from "../../../uni_modules/uts-helloworld";
import * as UTSHello from "../../../uni_modules/uts-helloworld";
export default {
......@@ -28,14 +23,15 @@
},
methods: {
testDoSthWithCallback: function () {
UTSHello.callWithoutParam({
success:function(){
UTSHello.callWithoutParam(
()=>{
uni.showToast({
title:'成功调用uts插件uts-helloworld的callWithoutParam',
icon:'none'
});
},
});
}
);
},
testDoSthWithString: function () {
UTSHello.callWithStringParam(
......@@ -49,7 +45,6 @@
);
},
testDoSthWithJSON: function () {
console.log(this.jsonParam);
var inputObject = {
inputText:this.stringParam
}
......@@ -57,7 +52,6 @@
UTSHello.callWithJSONParam({
input:inputObject,
success:function(response){
console.log(response);
uni.showToast({
title:'执行结果:' + JSON.stringify(response),
icon:'none'
......
import { log } from "./utils.uts";
import { getActivity } from "io.dcloud.uts.android";
import Rect from "android.graphics.Rect";
import Color from "android.graphics.Color";
import TextView from "android.widget.TextView";
import FrameLayout from "android.widget.FrameLayout";
type TimerOptions = {
start: (res: string) => void;
......@@ -28,5 +32,13 @@ export function doIntervalTask(opts:TimerOptions) {
return { name: "doIntervalTask",taskId:taskRet};
}
export function clearIntervalTask(taskId:number) {
clearInterval(taskId);
return { name: "clearIntervalTask"};
}
type NoParamOptions = {
success: (res: string) => void;
fail: (res: string) => void;
complete: (res: string) => void;
};
type StringParamOptions = {
input:string;
success: (res: string) => void;
fail: (res: string) => void;
complete: (res: string) => void;
};
type inputJSON = {
inputText:string,
errCode:number
}
type JsonParamOptions = {
input:inputJSON;
success: (res: string) => void;
......@@ -27,8 +16,9 @@ type JsonParamOptions = {
* 导出一个带callback的同步方法
* @param opts
*/
export function callWithoutParam(opts: NoParamOptions) {
opts.success();
export function callWithoutParam(success:() => void) {
success();
console.log("hello ","at uniModule/a/b.js line 67");
return { name: "doSthWithCallback" };
}
......
## 1 UTS原生插件介绍
### 1.1 什么是uts原生插件
UTS原生插件 是用UTS作为插件开发语言的一种新型插件形式。
![uts插件结构](https://native-res.dcloud.net.cn/images/uts/UTS%E7%BB%93%E6%9E%84%E7%A4%BA%E6%84%8F%E5%9B%BE1.png)
### 1.2 uts原生插件与uni原生插件的区别
|-|传统原生插件|uts原生插件|
|-|-------|--------|
|开发语言|java/oc|uts|
|开发环境|Android studio/XCode|HBuilderX|
|打包方式|外挂aar 等产出物|编译时生成原生代码|
优点:
1 减少原生环境搭建环节,降低插件开发难度
2 进一步降低平台差异,一种语言开发两个平台插件
3 编译时生成原生代码,提高代码执行效率
## 2 创建UTS插件
### 2.1 UTS插件目录结构
首先确保项目根目录存在uni_modules文件夹 [关于uni_modules的详细说明](https://uniapp.dcloud.net.cn/plugin/uni_modules.html#%E4%BB%80%E4%B9%88%E6%98%AF-uni-modules)
如果不存在,需要手动创建一个。
![插件目录](https://native-res.dcloud.net.cn/images/uts/uni_modules.jpg)
### 2.2 新建步骤拆解
选中`uni_modules`目录 -- 右键 -- 新建插件
![新建插件1](https://native-res.dcloud.net.cn/images/uts/new_uts_plugin.jpg)
选择 **UTS原生插件**
![新建插件2](https://native-res.dcloud.net.cn/images/uts/new_uts_plugin2.jpg)
UTS插件目录结构
![新建插件3](https://native-res.dcloud.net.cn/images/uts/new_uts_plugin3.jpg)
### 2.3 清单文件package.json
package.json为插件的清单文件,这里集成了整个UTS插件的配置信息,下面是一个完整的示例
```
{
"id": "uts-helloworld",
"displayName": "UTS插件示例",
"version": "0.1",
"description": "UTS插件示例",
"uni_modules": {
"type": "uts",
"uts": {
"android": {
"libs": [
"xxx.aar"
],
"dependencies": [{
"id": "com.xxx.richtext:richtext",
"source": "implementation 'com.xxx.richtext:richtext:3.0.7'"
}],
"minSdkVersion": 21
},
"ios": {
"libs": [
"xxx.a"
]
},
"dependencies": [
"xxx.uts"
]
}
}
}
```
## 3 开发UTS原生插件
以android平台获取电量为例,介绍UTS原生插件开发步骤
![OSAPI示例](https://native-res.dcloud.net.cn/images/uts/uts_osapi_demo.jpg)
在android平台目录下,编辑index.uts,键入以下内容
```
// index.uts
// 引用android api
import Context from "android.content.Context";
import BatteryManager from "android.os.BatteryManager";
// 引用uts环境 api
import { getAppContext } from "io.dcloud.uts.android";
export function getBatteryCapacity(): string {
// 获取android系统 application上下文
const context = getAppContext();
if (context != null) {
const manager = context.getSystemService(
Context.BATTERY_SERVICE
) as BatteryManager;
const currentLevel: number = manager.getIntProperty(
BatteryManager.BATTERY_PROPERTY_CAPACITY
);
return '' + currentLevel + '%';
}
return "0%";
}
```
关于android开发UTS插件的更多细节说明,参考文档[todo]
至此,我们已经完成一个android平台上获取电量的原生能力封装。
我们可以像使用普通js函数一样,使用getBatteryCapacity函数来获取设备电量
## 4 使用插件
### 4.1 引用UTS插件
下面介绍两种常见的引入方式
1 显性引用
```
//引用
import {
getBatteryCapacity,
} from "../../../uni_modules/uts-helloworld";
// 使用代码
getBatteryCapacity()
```
2 泛型引用
```
// 引用
import * as UTSHello from "../../../uni_modules/uts-helloworld";
// 使用代码
UTSHello.getBatteryCapacity()
```
### 4.2 使用UTS插件
与普通的js函数无使用差异.
更多的使用示例,可以参考HelloUTS中入门章节
```
var capacity = getBatteryCapacity()
uni.showToast({
title:"当前电量:"+capacity,
icon:'none'
});
```
## 5 测试
### 5.1 真机运行
UTS原生插件与原来的插件调试没有差异,可以直接运行测试。
需要注意的是,如果是涉及自定义信息,需要选择自定义基座运行
### 5.2 云端打包
### 5.3 示例项目
完整的示例项目地址:
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册