Не найдено действий для обработки намерений com.instagram.share.ADD_TO_STORY - PullRequest
0 голосов
/ 09 октября 2018

В нашем приложении React Native мы пытаемся, чтобы наши пользователи обменивались определенными изображениями прямо в фиде или истории в зависимости от выбора в нашем представлении / компоненте.

Когда мы пытаемся поделиться с помощью "com.instagram.share.ADD_TO_FEED "напрямую, он отлично работает согласованно.

Однако при попытке поделиться с помощью" com.instagram.share.ADD_TO_STORY "мы получаем следующую ошибку:

Не найдено действий для обработки намерения {act = com.instagram.share.ADD_TO_STORY> typ = image / * flg = 0x10000000 pkg = com.instagram.android (имеет дополнительные функции)}

Мы заставили его работать только с одним устройством (в частности, с использованием Samsung Note 8), но на всех других наших тестовых устройствах эта ошибка выскакивает.

Вот наш код:

@ReactMethod
public void shareWithInstagram(String fileName, String base64str, String mode, Callback callback,
        Callback secondCallback) {

    this.callback = callback;

    String type = "image/*";

    File media = saveImage(getReactApplicationContext(), fileName, base64str);

    if (isAppInstalled("com.instagram.android") == false) {
        callback.invoke("Sorry, instagram is not installed in your device.");
    } else {
        if (media.exists()) {
            Intent share = new Intent("com.instagram.share." + mode);
            share.setType(type);
            share.setPackage("com.instagram.android");
            StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
            StrictMode.setVmPolicy(builder.build());
            Uri uri = Uri.fromFile(media);

            share.setDataAndType(uri, type);
            share.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
            share.putExtra(Intent.EXTRA_STREAM, uri);
            Activity currentActivity = getCurrentActivity();

            if (currentActivity.getPackageManager().resolveActivity(share, 0) != null) {

                currentActivity.startActivityForResult(share, INSTAGRAM_SHARE_REQUEST);
            } else {
                callback.invoke("Sorry, an error ocurred.");
            }
        } else {
            callback.invoke("Sorry, image could not be loaded from disk.");
        }
    }

}

1 Ответ

0 голосов
/ 15 марта 2019

Вероятно, это происходит потому, что действие с действием com.instagram.share.ADD_TO_STORY имеет android:enabled="false" в манифесте Instagram.У действия действия com.instagram.share.ADD_TO_FEED этого нет.

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

Решение простое: вам нужно перезапустить Instagram после входа в систему .Тогда это станет доступным.Это, вероятно, предосторожность Instagram против показа нескольких действий Instagram в программе выбора приложений, если пользователь фактически не использует Instagram.


Теперь это становится довольно забавным:

другие наши тестовые устройствау всех появляется эта ошибка

.. это происходит потому, что когда вы пробуете его на другом устройстве, вы просто устанавливаете Instagram, входите в свою тестовую учетную запись и начинаете пытаться ... и это никогда не работает, потому что вы сначаланеобходимо перезапустить приложение Instagram!:)

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