// index.uts
// 引用android api
import Context from "android.content.Context";
import BatteryManager from "android.os.BatteryManager";
// 引用uts环境库
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%";
}
import Context from "android.content.Context";
和const context = getAppContext();
这两个context有啥区别
3 个回复
无敌暴龙 (作者)
context = getAppContext()
这个是不是相当于njs的MainActivity = plus.android.runtimeMainActivity()
DCloud_Android_DQQ
有点差别。
UTS 提供了两个类似的方法
getAppContext 约等于 applicaton 上下文。
getUniActivity 相当于njs的MainActivity = plus.android.runtimeMainActivity()
具体参考这里
https://uniapp.dcloud.net.cn/plugin/uts-for-android.html#iodcloudutsandroid
DCloud_Android_DQQ
在Android里面 application的上下文和 activity上下文,还是有差别的。
appliction 可以获取到更多应用层级的上下文变量
但是在开启一个新的activity的时候,如果用application 会有更多的限制,因为破坏了android原因的栈结构
具体需要检索一下android原生开发内容
无敌暴龙 (作者)
感觉这uts对前端来说还是有点难的,还要连带学习安卓,这样还不如直接学安卓呢,如果抛开ios,uts有点本末倒置的感觉了,不但没有降低app开发的成本,反而提高了,前端要学习安卓,安卓要学习js/ts,两者都提高了学习成本
2022-12-12 14:17
tuonioooo
回复 无敌暴龙: 我玩了快1年uni-app 感觉快要脱坑了 广告打的很好 但是内容 缺陷太大 每次升级 都会有一些奇葩的问题
2022-12-24 17:34
无敌暴龙 (作者)
回复 tuonioooo: 没怎么深度使用过uniapp,就这次想自己开发个app玩玩,结果发现h5+和native.js不能满足需求,然后询问说可以用uts,了解了一下,发现坑更大,不懂安卓玩不了uts,懂安卓不需要uts,完全就是鸡肋
2022-12-26 17:53
tuonioooo
除非官方迭代一些uts插件 否则 我是不会手动写uts 插件
2022-12-26 18:10
tuonioooo
这个东西 只适合做一个 资讯、查询、一定要有跨小程序或h5的需求,否则的话就不要用了
2022-12-26 18:12