简体中文
uni-app x的web版从uni-app的js引擎版迁移而来,理论上所有uni-app js引擎版的uni api在uni-app x的web版中都可以使用。但4.0版本的uni-app x的web版暂未对hello uni-app x列出的以外的其他api进行测试。
插件市场和hello示例中还有一批可替代uni内置api的插件或示例代码,比如:
uni.setClipboardData
、uni.getClipboardData
见插件市场uni.makePhoneCall
见插件市场plus.openUrl
见hello uni-app x示例uni.shareWithSystem
已内置。其他三方sdk分享 见插件市场,uni.openDocument
见hello uts示例、插件市场uni.scanCode
见插件市场uni.chooseFile
见插件市场uni.onGyroscopeChange
、uni.startGyroscope
、uni.stopGyroscope
见插件市场uni.onAccelerometerChange
、uni.startAccelerometer
见插件市场uni.startSoterAuthentication
见插件市场uni.vibrate
见插件市场uni.setScreenBrightness
、uni.getScreenBrightness
、uni.setKeepScreenOn
见插件市场uni.createCameraContext
见插件市场uni.getRecorderManager
见插件市场uni.getBackgroundAudioManager
、uni.createInnerAudioContext
,见插件市场或参考如下代码:<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中进行了替换增补。
一些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>
以上面的打开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
完整的uts插件开发指南,详见