CordovaはAndroid appを開発しBundle解析を行う
2419 ワード
(2018/2/9に作成)
最近,ハイブリッド開発プロジェクトで遭遇したデータ解析方式で,Cordovaを用いて原生とjsの通信を行い,jsメッセージを原生で受信する方式である.
だからjsメッセージを受け取った後、すべてintentから取って、普通はすべてこのようにします
その後bundleからデータを取得し、文字列であれば直接解析すればよい.
複雑なデータ、例えばオブジェクト、集合jは、今日述べる方法で以下のように解析する必要があります.
解析方法:
最近,ハイブリッド開発プロジェクトで遭遇したデータ解析方式で,Cordovaを用いて原生とjsの通信を行い,jsメッセージを原生で受信する方式である.
final BroadcastReceiver popReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
}
}
LocalBroadcastManager.getInstance(this).registerReceiver(popReceiver, new IntentFilter(Constants.LETTER_LIST));
だからjsメッセージを受け取った後、すべてintentから取って、普通はすべてこのようにします
Bundle extras = intent.getExtras();
その後bundleからデータを取得し、文字列であれば直接解析すればよい.
String view = extras.getString(Constants.VIEW);
複雑なデータ、例えばオブジェクト、集合jは、今日述べる方法で以下のように解析する必要があります.
Bundle[{content=Bundle[{0=Bundle[{messages=Bundle[{0=Bundle[{type=us, content= , created_at=2018-02-09 16:55:06, headimgurl=https://naneng-user.oss-cn-shanghai.aliyuncs.com
/default_user_head.jpg}], 1=Bundle[{type=us, content= K, created_at=2018-02-09
16:55:11, headimgurl=https://naneng-user.oss-cn-shanghai.aliyuncs.com/default_user_head.jpg}],
2=Bundle[{type=us, content=T OK, created_at=2018-02-09 16:55:16, headimgurl=https://naneng-
user.oss-cn-shanghai.aliyuncs.com/default_user_head.jpg}]}], id=116, nickname=17621421360}]}]}]
解析方法:
// bundle, bundle, bundle , [] ,{} , bundle
Bundle extras = intent.getExtras();
if (extras != null){
try {
JSONObject jsonObject = new JSONObject();
// content key bundle , , ,0,1,2 key
Bundle content = extras.getBundle("content");
for (int i=0;i