
简体中文
在App平台,与uni-app相比,uni-app x多了不少API,但也还有一些API没有,需要通过插件市场的插件替代。
uni.openDocument
见hello uts示例,在其中搜索getFileProviderUriClick方法、插件市场uni.onGyroscopeChange
、uni.startGyroscope
、uni.stopGyroscope
见插件市场uni.onAccelerometerChange
、uni.startAccelerometer
见插件市场uni.startSoterAuthentication
见插件市场uni.vibrate
见插件市场uni.setScreenBrightness
、uni.getScreenBrightness
、uni.setKeepScreenOn
见插件市场uni.createLivePusherContext
见插件市场uni-app x 中不再支持plus和weex的API。过于plus api中一些常用的api,在uni-app x中进行了替换增补。
一些plus api在插件市场有替代:
<template>
<view>
<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('androidamap://viewMap?sourceApplication=Hello%20uni-app&poiname=DCloud&lat=39.9631018208&lon=116.3406135236&dev=0')">打开地图坐标</button>
</view>
</template>
<script>
import Intent from 'android.content.Intent';
import Uri from 'android.net.Uri';
export default {
data() {
return {}
},
methods: {
openSchema(url : string) {
const context = UTSAndroid.getUniActivity()!;
const uri = Uri.parse(url)
const intent = new Intent(Intent.ACTION_VIEW, uri)
intent.setData(uri);
context.startActivity(intent);
}
}
}
</script>
插件市场有一些抹平plus写法的插件,自定义了一个plus对象,方法内部再调用uni或uts的api,以兼容历史的plus写法,详见
扩展原生API在uni-app x中很简单,把kotlin代码简单的转换为uts代码,以上面的打开schema代码为例。
import android.content.Intent
import android.net.Uri
fun openSystemBrowser(url: String) {
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
startActivity(intent)
}
import Intent from 'android.content.Intent';
import Uri from 'android.net.Uri';
function openSystemBrowser(url: string): void {
const intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
}
这里注意几个差别:
import android.content.Intent
,而uts是import Intent from 'android.content.Intent'
。import后面需要跟名字,from后面需要引号括起来。fun
,而uts是function
const context = UTSAndroid.getUniActivity()!
有时你得到的kotlin代码可能是简写,或者ai转ts时搞错了,需要自己推理一下缺什么,简单补补改改。
官方的uni api,都是uts代码调用系统api,这里面很多例子可以参考:https://gitcode.net/dcloud/uni-api
当然如果你不想转换代码,也可以把kotlin、java、swift、ets直接放入utssdk下,和入口的uts文件混编。
完整的uts插件开发指南,详见