xiamo152
xiamo152
  • 发布:2016-04-21 18:24
  • 更新:2016-04-22 14:39
  • 阅读:1973

NJS如何通过Bundle传递数据/如何传递对象类型(Bean)数据

分类:Native.js

AActivity通过startActivityForResult方式打开BActivity,BActivity是通过SDK.startWebApp方式打开的html页面,现在在html页面操作完毕之后返回到AActivity页面发现通过Bundle方式将对象数据传递编译通不过 "Uncaught SyntaxError: Unexpected identifier"。NJS不支持bundle的Serializable序列化方式传递参数吗?还是我哪里出了问题?请教一下谢谢!!

var currentActivity = plus.android.runtimeMainActivity();  
                var Intent = plus.android.importClass('android.content.Intent')  
                var intent = new Intent();  
                var Bundle = plus.android.importClass('android.os.Bundle');  
                                var Serializable = plus.android.importClass('java.io.Serializable');  
                                var bundle = new Bundle();  
                                var uerser = new Object();  
                                uerser.name = '张三';  
                                uerser.address='上海市';  
                               // ****下面这句提示 【Uncaught SyntaxError: Unexpected identifier】 ******/  
                                mBundle.putSerializable("user", (Serializable)uerser);    
                intent.putExtra('bundle', mBundle);  
                currentActivity.setResult(200,intent);  
                currentActivity.finish();

但是通过Intent传递简单的数据是可以成功:如下可以成功

var currentActivity = plus.android.runtimeMainActivity();  
                var Intent = plus.android.importClass('android.content.Intent')  
                var intent = new Intent();  
                intent.putExtra('data', "返回起调activity的onActivityResult");  
                currentActivity.setResult(200,intent);  
                currentActivity.finish();

NJS如何传递对象类型数据到native层呢?通过自定义插件貌似也是通过数组的方式将参数传递到Native层。

2016-04-21 18:24 负责人:无 分享
已邀请:
xiamo152

xiamo152 (作者)

var currentActivity = plus.android.runtimeMainActivity();  
                var Intent = plus.android.importClass('android.content.Intent')  
                var intent = new Intent();  
                var Bundle = plus.android.importClass('android.os.Bundle');  
                var Serializable = plus.android.importClass('java.io.Serializable');  
                var bundle = new Bundle();  
                bundle.putString("content",'传递基本类型数据')  
                //bundle.putSerializable("user", (Serializable) person);  
                intent.putExtra('bundle', bundle);  
                currentActivity.setResult(200, intent);  
                currentActivity.finish();

验证了一下 通过Bundle可以传递基本数据类型,但是序列化的对象不能传递,如果想要传递序列话对象应该如何实现呢?

xiamo152

xiamo152 (作者)

已解决,换了一种思路,将bean对象通过JSON转换为string后传递

该问题目前已经被锁定, 无法添加新回复