提交 ae906051 编写于 作者: W wanganxp

X

上级 551aa4c2
...@@ -2,13 +2,13 @@ ...@@ -2,13 +2,13 @@
uni-app x项目的uts代码中可以使用很多API。包括: uni-app x项目的uts代码中可以使用很多API。包括:
- uts的api [详见](../uts/buildin-object-api/global.md) - uts的api,包括[内置对象](../uts/buildin-object-api/global.md),以及平台专有对象[UTSAndroid](../uts/utsandroid.md)[UTSiOS](../uts/utsios.md)
- 全局api,前面不需要加`uni.`。如`getApp` - 全局api,前面不需要加`uni.`。如`getApp`
- uni.xxx的内置api。见左侧 - uni.xxx的内置api。见左侧
- uniCloud.xxx的内置api。见左侧 - uniCloud.xxx的内置api [详见](./unicloud/README.md)
- dom的api [详见](dom/README.md) - dom的api [详见](../dom/README.md)
- vue的api [详见](../vue/README.md) - vue的api [详见](../vue/README.md)
- 原生api - os原生api
由于uts可以直接调用Android和iOS的api,所以os和三方sdk的能力都可以在uts中调用。如下: 由于uts可以直接调用Android和iOS的api,所以os和三方sdk的能力都可以在uts中调用。如下:
......
...@@ -9,7 +9,38 @@ ...@@ -9,7 +9,38 @@
- [扫码](https://ext.dcloud.net.cn/search?q=%E6%89%AB%E7%A0%81&cat1=8&type=UpdatedDate)`uni.scanCode` - [扫码](https://ext.dcloud.net.cn/search?q=%E6%89%AB%E7%A0%81&cat1=8&type=UpdatedDate)`uni.scanCode`
- [文件选择](https://ext.dcloud.net.cn/search?q=%E6%96%87%E4%BB%B6%E9%80%89%E6%8B%A9&cat1=8&cat2=81)`uni.chooseFile` - [文件选择](https://ext.dcloud.net.cn/search?q=%E6%96%87%E4%BB%B6%E9%80%89%E6%8B%A9&cat1=8&cat2=81)`uni.chooseFile`
- [蓝牙](https://ext.dcloud.net.cn/search?q=%E8%93%9D%E7%89%99&orderBy=Relevance&cat1=8&cat2=81) - [蓝牙](https://ext.dcloud.net.cn/search?q=%E8%93%9D%E7%89%99&orderBy=Relevance&cat1=8&cat2=81)
- [nfc](https://ext.dcloud.net.cn/search?q=nfc&orderBy=Relevance&cat1=8&cat2=81) - [NFC](https://ext.dcloud.net.cn/search?q=nfc&orderBy=Relevance&cat1=8&cat2=81)
- 播放音频:`uni.getBackgroundAudioManager``uni.createInnerAudioContext`,参考如下代码:
```vue
<template>
<button @click="playAudio">播放音频</button>
</template>
<script>
import MediaPlayer from "android.media.MediaPlayer"; //hx中对这里alt+左键转到定义,查看该库的方法清单
export default {
data() {
return {}
},
methods: {
playAudio() {
let mediaPlayer = new MediaPlayer()
try {
mediaPlayer.setDataSource("https://www.w3cschool.cn/statics/demosource/horse.mp3") // 网络音频文件URL //大体积的网络音频应在协程里加载,否则容易卡ui
// mediaPlayer.setDataSource(UTSAndroid.convert2AbsFullPath("/static/horse.mp3")) // 本地音频文件
mediaPlayer.prepare()
mediaPlayer.start() // 开始播放
// mediaPlayer.pause()
// mediaPlayer.stop()
// mediaPlayer.release() // 释放MediaPlayer对象
// 倍速播放参考:https://developer.android.google.cn/reference/android/media/MediaPlayer#setPlaybackParams(android.media.PlaybackParams)
} catch (e) {
console.log(e);
}
}
}
}
</script>
```
uni-app x 中不再支持plus和weex的API。过于plus api中一些常用的api,在uni-app x中进行了替换增补。 uni-app x 中不再支持plus和weex的API。过于plus api中一些常用的api,在uni-app x中进行了替换增补。
- plus.runtime.quit => [uni.exit](./exit.md) - plus.runtime.quit => [uni.exit](./exit.md)
...@@ -22,6 +53,7 @@ uni-app x 中不再支持plus和weex的API。过于plus api中一些常用的api ...@@ -22,6 +53,7 @@ uni-app x 中不再支持plus和weex的API。过于plus api中一些常用的api
<view> <view>
<button @click="openSchema('https://uniapp.dcloud.io/uni-app-x')">使用浏览器打开指定URL</button> <button @click="openSchema('https://uniapp.dcloud.io/uni-app-x')">使用浏览器打开指定URL</button>
<button @click="openSchema('market://details?id=com.tencent.mm')">使用应用商店打开指定App</button> <button @click="openSchema('market://details?id=com.tencent.mm')">使用应用商店打开指定App</button>
<button @click="openSchema('androidamap://viewMap?sourceApplication=Hello%20uni-app&poiname=DCloud&lat=39.9631018208&lon=116.3406135236&dev=0')">打开地图坐标</button>
</view> </view>
</template> </template>
<script> <script>
......
...@@ -181,21 +181,23 @@ uni.的api,大多是uts开发的,它们会陆续开源在[uni-api](https://g ...@@ -181,21 +181,23 @@ uni.的api,大多是uts开发的,它们会陆续开源在[uni-api](https://g
## 6. 插件生态 ## 6. 插件生态
uni-app x编译到web和小程序时,所有js库仍然可用。但在App平台,由于没有js引擎,所以无法使用js生态(除非使用web-view组件)。 uni-app x编译到web和小程序时,所有js库仍然可用。但在App平台,由于没有js引擎,所以无法使用js生态(除非使用web-view组件或自己集成一个js引擎)。
uni-app x App平台的插件生态来源于: uni-app x App平台的插件生态来源于:
1. 原生生态。比如上述示例代码中获取手机型号。以及各种原生sdk的直接调用。 1. 原生生态。比如上述示例代码中获取手机型号。以及各种原生sdk的直接调用。
2. ts生态的迁移。很多js库是ts编写的,如果没有使用uts不支持的语法,ts代码就可以使用。如果略有不同,也可以稍加改造ts以适配uts。 2. ts生态的迁移。很多js库是ts编写的,如果没有使用uts不支持的语法,ts代码就可以使用。如果略有不同,也可以稍加改造ts以适配uts。
[uni插件市场](https://ext.dcloud.net.cn/)是插件的聚集地,这里有2种插件适用于uni-app x。 uni-app x支持npm,但npm的大多数库是for web的,无法跨端,这些库只能在uni-app x编译为web时使用。当然如果有兼容uni-app x的全端库,可以使用,比如这个库[lwu-css](https://www.npmjs.com/package/lwu-css)
1. uts插件
[uni插件市场](https://ext.dcloud.net.cn/)是跨端插件的聚集地,这里有2种插件适用于uni-app x。
1. uts插件(原生插件)
uts插件封装原生能力,包括os能力或三方sdk。可以做API插件,也可以做组件插件。 uts插件封装原生能力,包括os能力或三方sdk。可以做API插件,也可以做组件插件。
uts插件可同时在 uni-app js引擎版 和 uni-app x 的app平台上运行。 uts插件可同时在 uni-app js引擎版 和 uni-app x 的app平台上运行。
uts插件分类直达:[https://ext.dcloud.net.cn/?cat1=8&type=UpdatedDate](https://ext.dcloud.net.cn/?cat1=8&type=UpdatedDate) uts插件分类直达:[https://ext.dcloud.net.cn/?cat1=8&type=UpdatedDate](https://ext.dcloud.net.cn/?cat1=8&type=UpdatedDate)
uni-app js版的“App原生语言插件”无法在 uni-app x 中运行。 之前uni-app js版的“App原生语言插件”,因依赖js引擎,所以无法在 uni-app x 中运行。
2. 前端插件 2. 前端插件
...@@ -207,16 +209,17 @@ uvue组件、uts sdk、uni-app x前端页面/项目模板。这些前端代码 ...@@ -207,16 +209,17 @@ uvue组件、uts sdk、uni-app x前端页面/项目模板。这些前端代码
一般情况下,原生库的能力是大于js库的。不太可能有一个功能必须使用js库才能使用。比如md5,js有库,原生也有库,调用一个jar也很方便。 一般情况下,原生库的能力是大于js库的。不太可能有一个功能必须使用js库才能使用。比如md5,js有库,原生也有库,调用一个jar也很方便。
实际上,常见的[加密、md5]([详见](https://ext.dcloud.net.cn/search?q=%E5%8A%A0%E5%AF%86&orderBy=Relevance&cat1=8&cat2=81))、[dayjs](https://ext.dcloud.net.cn/search?q=dayjs&orderBy=Relevance&cat1=8&cat2=81)等库,插件市场已经有uts版本。 常见的[加密、md5](https://ext.dcloud.net.cn/search?q=%E5%8A%A0%E5%AF%86&orderBy=Relevance&cat1=8&cat2=81)[dayjs](https://ext.dcloud.net.cn/search?q=dayjs&orderBy=Relevance&cat1=8&cat2=81)等库,插件市场已经有uts版本。
**如果你一定要使用某个js库,还有一个办法是在uni-app x里的web-view组件,让其运行js并返回值给uts代码。** **如果你一定要使用某个js库,还有一个办法是在uni-app x里的web-view组件,让其运行js并返回值给uts代码。**
目前插件市场适配uni-app x的插件已有数百款,包括ui组件库: 目前插件市场适配uni-app x的插件已有数百款,包括ui组件库:
- [t-uvue-ui](https://ext.dcloud.net.cn/plugin?id=15571):丰富的组件库 - [t-uvue-ui](https://ext.dcloud.net.cn/plugin?id=15571):丰富的组件库
- [uxui](https://ext.dcloud.net.cn/plugin?id=15726):graceui作者的免费开源组件库 - [uXui](https://ext.dcloud.net.cn/plugin?id=15726):graceui作者的免费开源组件库
- [ux-front-ui](https://ext.dcloud.net.cn/plugin?id=15774):持续更新的组件库 - [ux-front-ui](https://ext.dcloud.net.cn/plugin?id=15774):持续更新的组件库
- [easyX电商组件库](https://ext.dcloud.net.cn/plugin?id=15602):电商业务常见的各种组件库 - [easyX电商组件库](https://ext.dcloud.net.cn/plugin?id=15602):电商业务常见的各种组件库
## 一期范围及路线图 ## 一期范围及路线图
除上述文档中声明已经完成的,还有如下需要注意: 除上述文档中声明已经完成的,还有如下需要注意:
...@@ -311,5 +314,4 @@ uni-app x 毕竟是原生应用,内嵌flutter、rn这些没有任何问题, ...@@ -311,5 +314,4 @@ uni-app x 毕竟是原生应用,内嵌flutter、rn这些没有任何问题,
欢迎加入 uni-app x 专用群交流 欢迎加入 uni-app x 专用群交流
- QQ群485089465 - QQ群485089465
- 钉钉群二维码 - [uni-im群](https://im.dcloud.net.cn/#/?joinGroup=6582a367058a46652e0deda9)
![](static/uaxding.png) \ No newline at end of file
...@@ -12,8 +12,10 @@ ...@@ -12,8 +12,10 @@
关于[uni-api](https://gitcode.net/dcloud/uni-api)[uni-component](https://gitcode.net/dcloud/uni-component),再强调说明下: 关于[uni-api](https://gitcode.net/dcloud/uni-api)[uni-component](https://gitcode.net/dcloud/uni-component),再强调说明下:
uni-app x的组件和API,大多是uts语言开发的。和开发者做的uts插件是一样的。\ uni-app x的组件和API,大多是uts语言开发的。和开发者做的uts插件是一样的。\
它们都符合[exi api](https://uniapp.dcloud.net.cn/api/extapi.html)规范,也就是说,把这些uni_modules复制到工程下,会替换内置API和组件的实现。\ 它们都符合[exi api](https://uniapp.dcloud.net.cn/api/extapi.html)规范,也就是说,把这些uni_modules复制到工程下,会替换内置API和组件的实现。
所以如需修改uni-app x的组件和API,比如修复一些bug或添加一些功能,可以通过这种方式来实现。\
所以如需修改uni-app x的组件和API,比如修复一些bug或添加一些功能,可以通过这种方式来实现。
如果这些改动有助于其他开发者,欢迎给开源项目回提pr。 如果这些改动有助于其他开发者,欢迎给开源项目回提pr。
除此之外,插件市场还有众多插件,[详见](https://ext.dcloud.net.cn/?uni-appx=1) 除此之外,插件市场还有众多插件,[详见](https://ext.dcloud.net.cn/?uni-appx=1)
\ No newline at end of file
...@@ -399,9 +399,6 @@ UTSAndroid.getDispatcher("io").async(function(_){ ...@@ -399,9 +399,6 @@ UTSAndroid.getDispatcher("io").async(function(_){
<!-- UTSJSON.UTSAndroid.getFileProviderUri.compatibility --> <!-- UTSJSON.UTSAndroid.getFileProviderUri.compatibility -->
<!-- UTSJSON.UTSAndroid.tutorial -->
```ts ```ts
// 使用外部应用打开项目内置图片资源 // 使用外部应用打开项目内置图片资源
let file = new File(UTSAndroid.getResourcePath("static/logo.png")) let file = new File(UTSAndroid.getResourcePath("static/logo.png"))
...@@ -414,3 +411,4 @@ context.startActivity(intent); ...@@ -414,3 +411,4 @@ context.startActivity(intent);
``` ```
<!-- UTSJSON.UTSAndroid.tutorial -->
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册