需求如下,APP有商城和硬件控制两个独立模块,商城使用Uniapp开发,硬件控制使用IOS Object-C开发,目前需实现在Uniapp商城中调起OC项目中的硬件控制界面
安卓端已经实现,下图为Native.js调用安卓原生Activity实现代码
// 打开安卓原生 Activity
openActivity(item) {
//获取宿主上下文
var main = plus.android.runtimeMainActivity();
//通过反射获取Android的Intent对象
var Intent = plus.android.importClass("android.content.Intent");
//通过宿主上下文创建 intent
var intent = new Intent(main.getIntent());
//设置要开启的Activity包类路径 a0201.tianyin.uniapp.MainActivity换掉你自己的界面
intent.setClassName(main, "a0201.tianyin.uniapp.SG25_08.sky_allHomeActivity");
//开启新的任务栈 (跨进程)
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//向原生界面传值操作
intent.putExtra("uni_key",item);
//开启新的界面
main.startActivity(intent);
},
硬件控制模块工程目录
Uniapp IOS离线打包工程目录
希望IOS端能有通过 Native.js 调起原生界面的类似解决方案,希望有IOS开发大神出来解答一下,有酬谢!
yihong (作者)
是的,这2个功能模块不是在一个app里,现在想要将两个工程合并,然后在uniapp这边有个<Button>点击后要能调起原生界面,安卓这边我是将原生代码合并在Java目录下,然后通过plus.android.runtimeMainActivity()调用,IOS这边没搞过,所以就有点蒙了
2020-07-16 11:35
CLP
回复 yihong: 可以合起来,然后你写个插件,把原生界面吊起来就可以了
2020-07-16 13:19