您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

js实现界面向原生界面发消息并跳转功能

2024/2/27 20:19:43发布13次查看
本文实例为大家分享了js界面向原生界面发消息并跳转的具体代码,供大家参考,具体内容如下
步骤一 
在idea中,打开rn项目下的./android/app,这个过程需要一点儿时间,可能还需要下载gradle的依赖什么的。
步骤二 
跟做原生app没差,我们新建一个testactivity,简单起见,仅实现如下:
public class testactivity extends appcompatactivity { private button mbtgoback; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_test); mbtgoback = (button) findviewbyid(r.id.bt_go_back); mbtgoback.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { finish(); } }); } }
步骤三
写一个类exampleinterface extends reactcontextbasejavamodule,在该类中接收消息。
具体代码:
public class exampleinterface extends reactcontextbasejavamodule { private reactapplicationcontext mrapplicationcontext; public exampleinterface(reactapplicationcontext reactcontext) { super(reactcontext); mrapplicationcontext = reactcontext; } //rn使用这个名称来调用原生模块的其他函数 @override public string getname() { return "exampleinterface"; } //必须写@reactmethod,将其注册为能够被react调用的函数 @reactmethod public void handlermessage(string amessage){ log.d("lt","====receive message from rn==="+amessage); //这部分实现简单的跳转 intent intent = new intent(mrapplicationcontext,testactivity.class); intent.addflags(intent.flag_activity_new_task); mrapplicationcontext.startactivity(intent); } }
步骤四
实现一个包管理器,并将接收消息的类exampleinterface,注册进去。
代码如下:
public class anexamplereactpackage implements reactpackage { @override public list<nativemodule> createnativemodules(reactapplicationcontext reactapplicationcontext) { list<nativemodule> modules = new arraylist<>(); modules.add(new exampleinterface(reactapplicationcontext)); return modules; } @override public list<class<? extends javascriptmodule>> createjsmodules() { return collections.emptylist(); } @override public list<viewmanager> createviewmanagers(reactapplicationcontext reactapplicationcontext) { return collections.emptylist(); } }
步骤五
在mainapplication中添加包管理类anexamplereactpackage;
@override protected list<reactpackage> getpackages() { return arrays.<reactpackage>aslist( new mainreactpackage(), new anexamplereactpackage() ); }
步骤六
在js界面,发送消息;
buttonpress:function(){ nativemodules.exampleinterface.handlermessage('test'); }
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product