Как заставить пример Instagram Sharing a Sticker Asset работать? - PullRequest
1 голос
/ 10 октября 2019

Я пытаюсь следовать документам Facebook для Обмен активом стикера на Android без какой-либо удачи. В основном при запуске приложение мерцает, а затем вылетает.

Может ли кто-нибудь взглянуть на этот код и указать, почему происходит сбой приложения после вызова activity.startActivityForResult(intent, 0);? (отлаживая код с помощью logcat, я вижу, что код определенно выполняет startActivityForResult)

package com.app.my;

import android.net.Uri;
import android.content.Intent;
import android.app.Activity;
import android.util.Log;

import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.bridge.Callback;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;

public class InstagramStoriesModule extends ReactContextBaseJavaModule {
    private static ReactApplicationContext reactContext;

    InstagramStoriesModule(ReactApplicationContext context) {
        super(context);
        reactContext = context;
    }

    //Mandatory function getName that specifies the module name
    @Override
    public String getName() {
        return "InstagramStories";
    }

    //Custom function that we are going to export to JS
    @ReactMethod
    public void share(ReadableMap options) {
        String stickerImage = "https://www.example.com/image.jpeg";
        String backgroundColor = "#000000";

        Uri stickerAssetUri = Uri.parse(stickerImage);

        Intent intent = new Intent("com.instagram.share.ADD_TO_STORY");

        intent.setType("image/jpeg");
        intent.putExtra("interactive_asset_uri", stickerAssetUri);
        intent.putExtra("top_background_color", backgroundColor);
        intent.putExtra("bottom_background_color", backgroundColor);

        Activity activity = reactContext.getCurrentActivity();
        activity.grantUriPermission("com.instagram.android", stickerAssetUri, Intent.FLAG_GRANT_READ_URI_PERMISSION);

        if (activity.getPackageManager().resolveActivity(intent, 0) != null) {
            activity.startActivityForResult(intent, 0);
        }
    }
}


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...