全部 文章 问答 分享 共找到6个相关内容
[文章] Uniapp开发实战
技术背景了解Uniapp可以解决的问题Uniapp是一个跨平台开发技术应用,意在使用js代码来开发多端平台,如Android、IOS、HarmonyOS这些移动端平台,当然最火的还是开发小程序应用。
2024-12-13 15:47 · uniapp / Android / IOS / 大前端 / RN
[问答] uniapp能调用第三方的库吗?
请问uniapp可以调用第三方的库吗?目前在做一个项目,需要调用RFID的库,正在选技术,不知道该用原生的安卓还是用uniapp,朋友说能调.so的话就没什么问题,有人做过这个吗?
2021-01-04 15:50 · uniapp / RFID / 调用第三方库
[文章] uniapp中监听图片的头部
uniapp中监听图片的头部有些时候,我们需要监听图片的头部,比如说图灵码,通常是在头部携带一个id,id与码匹配来判断是否正确。那怎么获取到header呢?
2024-02-29 12:38 · uniapp / 小程序 / 前端 / 客户端 / 头部
[文章] 阳光沙滩客户端Flutter开坑
背景移动端开发,大家可能选择的技术栈有很多,比如最多的是原生开发,也就是Android,Java或者kt混合,也有uniapp,rn,weex,还有Google推的Flutter。
[文章] reactnative flutter uniapp 的对比,以及如何做技术选型
ReactNative、Flutter和uni-app是当前移动开发中三种主流的跨平台技术方案,它们各有优缺点,适用于不同的开发需求。以下是从多个维度对这三者进行的全面对比,并给出技术选型建议。一、技术简介技术简介ReactNativeFacebook开发,使用JavaScript+React构建原生应用,桥接调用原生组件FlutterGoogle开发,使用Dart语言,通过Skia引擎实现高性能渲染uni-appDCloud推出,使用Vue.js开发,构建多端应用(小程序、App、H5)二、对比维度1.性能技术性能表现ReactNative中等。通过桥接调用原生模块,性能接近原生,但桥接频繁会有瓶颈Flutter最佳。直接通过C++Skia引擎渲染UI,无需桥接,接近原生甚至超过uni-app较差。底层仍依赖WebView或小程序引擎,适合轻应用,不适合高性能需求结论:Flutter在性能上遥遥领先,ReactNative次之,uni-app适合轻量级业务。2.跨平台能力技术支持平台ReactNativeiOS、Android(Web支持需额外开发)FlutteriOS、Android、Web、桌面(Windows、macOS、Linux)uni-appiOS、Android、Web、小程序(微信、支付宝、百度等)结论:uni-app支持最多平台,Flutter平台扩展性强,ReactNative原生优先。3.开发效率&学习成本技术开发效率学习成本ReactNative高。JS+React社区成熟中等,需理解桥接、生命周期、ReactFlutter中等。UI全自绘,工具强大较高,需学Dart和Flutter框架uni-app很高。Vue语法上手快,文档齐全很低,Vue基础即可结论:uni-app上手最快;ReactNative次之;Flutter学习曲线较陡,但长期收益高。4.社区与生态技术社区生态ReactNative社区活跃,第三方库丰富Flutter社区快速增长,Google重视,库生态日渐完善uni-app国内使用广泛,文档丰富,但生态多依赖DCloud官方结论:ReactNative和Flutter社区全球化;uni-app更适合国内、对国产小程序支持强。5.维护性与团队协作技术维护成本ReactNative中等。需关注桥接版本兼容与Native代码维护Flutter中等。框架更新较快,需关注Flutter和Dart的升级uni-app最低。HBuilderX提供一站式解决方案,集成打包发布容易结论:uni-app维护成本最低;Flutter和RN需注意版本兼容问题。6.使用场景&成功案例技术使用场景成功案例ReactNative中大型App,需原生性能,已有JS技术栈Facebook、Instagram、滴滴出行Flutter高性能需求、复杂动画、多平台统一设计GoogleAds、闲鱼、阿里UC、B站开屏页uni-app快速上线、轻量多端场景、国产小程序优先京东购物小程序、同程旅游App、小红书小程序等三、技术选型建议业务类型推荐方案理由对性能要求高,需复杂交互动画Flutter接近原生,优秀的渲染性能与跨平台能力前端团队为主,已有React/JS技术栈ReactNative学习成本低,快速开发,便于团队协作快速迭代,支持多端小程序+H5uni-appVue上手快,小程序和Web同源开发,国产小程序生态完整初创团队/中小项目uni-app或Flutter快速上线;Flutter若能承受学习成本,可带来更高长期收益重前端轻原生的Appuni-app或RN开发效率高,适合迭代频繁,功能偏内容展示四、总结对比表指标ReactNativeFlutteruni-app性能⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐跨平台支持⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐学习成本⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐社区生态⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐(偏国内)原生能力⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐(原生需插件扩展)上手速度⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐推荐场景商业App,已有JS团队高性能、多平台统一设计多端小程序、快速上线应用如果你有具体的业务场景或团队配置,也可以告诉我,我可以给你更精确的技术选型建议。
2025-05-28 09:52 · flutter
[问答] uniapp 使用native.js调用安卓获取所有app的列表后 图标怎么做转化呢


目前这个方法获取到的base64无法显示

pkginfo.plusGetAttribute('applicationInfo').loadIcon(PackageManager)返回的对象不一样

有些是android.graphics.drawable.BitmapDrawable

有些是android.graphics.drawable.AdaptiveIconDrawable

getApp() {

var ApplicationInfo = plus.android.importClass('android.content.pm.ApplicationInfo');


var MainActivity = plus.android.runtimeMainActivity();


var PackageManager = MainActivity.getPackageManager();


var pinfo = plus.android.invoke(PackageManager, 'getInstalledPackages', 0);


console.log("pinfo", plus.android.invoke(pinfo, 'size'))

if (pinfo != null) {

var apklist = [];


for (var i = 0; i < plus.android.invoke(pinfo, 'size'); i++) {

//PackageInfo{4b45699f9d com.tencent.mobileqq}


var pkginfo = plus.android.invoke(pinfo, 'get',i) ;

var issysapk = (pkginfo.plusGetAttribute('applicationInfo').plusGetAttribute('flags') & ApplicationInfo.FLAG_SYSTEM) != 0 ? true : false;


if (issysapk == false) {

const apkinfo = {

appName: pkginfo

.plusGetAttribute('applicationInfo')

.loadLabel(PackageManager)

.toString(), //应用名称

appIco: pkginfo.plusGetAttribute('applicationInfo').loadIcon(PackageManager),


packageName: pkginfo.plusGetAttribute('packageName'), // 包名


versionName: pkginfo.plusGetAttribute('versionName'), //版本号


versionCode: pkginfo.plusGetAttribute('versionCode') // 版本Code

};

var bimp = plus.android.invoke( apkinfo.appIco, 'getBitmap'); 



var BitmapFactory = plus.android.importClass('android.graphics.BitmapFactory');


var Base64 = plus.android.importClass('android.util.Base64');


var Bitmap = plus.android.importClass('android.graphics.Bitmap');


var ByteArrayOutputStream = plus.android.importClass('java.io.ByteArrayOutputStream');


try {

var baos = new ByteArrayOutputStream();

bimp.compress(Bitmap.CompressFormat.JPEG, 40, baos);


baos.flush();


baos.close();


var bitmapBytes = baos.toByteArray();

var result = Base64.encodeToString(bitmapBytes, Base64.DEFAULT);


var src = 'data:image/jpeg;base64,' + result;


var asd = {

src:src

}

console.log(asd)

} catch (e) {

console.log(e);

}


apklist.push(apkinfo);

}

}

}

}

2021-11-06 14:50 · uniapp获取应用图标
  • 1