Реагировать на родное намерение Android поставитьExtra obj ReadableMap, как восстановить объект - PullRequest
0 голосов
/ 23 декабря 2018

У меня есть следующий код:

ReadableMap infoIntent =  frame.getMap("infoIntent");
Log.v("RN2: ", "/uri: " + infoIntent);

intent appIntent = new Intent(mReactContext, getCurrentActivity().getClass());
appIntent.setAction(ACTION_SHORTCUT);
appIntent.putExtra(SHORTCUT_ITEM, infoIntent);//(Parcelable) ??

Я должен убедиться, что восстановил эти данные и передать их в обещанный, поэтому я чувствовал себя так:

    @ReactMethod
    @TargetApi(25)
    public void popInitialAction(Promise promise) {
        try {
            Activity currentActivity = getCurrentActivity();
            WritableMap map = null;

            if (currentActivity != null) {
                Intent intent = currentActivity.getIntent();

                if (ACTION_SHORTCUT.equals(intent.getAction())) {
                    Parcelable bundle = intent.getParcelableExtra(SHORTCUT_ITEM);
                    Log.v("RN2: ", "/uri2: " + bundle);
                    /*if (bundle != null) {
                        map = item.toWritableMap();
                    }*/
                }
            }

            promise.resolve(map);
        } catch (Exception e) {
            promise.reject(new JSApplicationIllegalArgumentException(
                    "AppShortcuts.popInitialAction error. " + e.getMessage()));
        }
    }

Тип объекта будет выглядеть примерно так:

infoIntent: {
      name: "Megan",
      surname: "Fox",
      urlImg:
        'https://scontent-mxp1-1.cdninstagram.com/vp/3c4732c2cd3566727dad10f03c04b7bd/5C9241C4/t51.2885-19/s150x150/34706107_1875460276079648_8096847319644766208_n.jpg',
      age: 32,
      height: "1.63 m"
    }

Характеристики объекта могут различаться, поэтому я не хочу создавать класс с параметром set и get name.

...