找不到处理Intent com.instagram.share.ADD_TO_STORY的Activity

问题描述 投票:3回答:1

在我们的React Native应用程序中,我们正在尝试让我们的用户直接分享特定图像到Feed或故事,具体取决于我们的视图/组件中的选择。

当我们尝试直接使用“com.instagram.share.ADD_TO_FEED”进行共享时,它以完美的方式完美地工作。

但是,当尝试直接使用“com.instagram.share.ADD_TO_STORY”进行共享时,我们会收到以下错误:

找不到处理Intent的活动{act = com.instagram.share.ADD_TO_STORY> typ = image / * flg = 0x10000000 pkg = com.instagram.android(has extras)}

我们只能使用一台设备(特别是使用三星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.");
        }
    }

}
android facebook react-native instagram
1个回答
1
投票

这可能正在发生,因为行动com.instagram.share.ADD_TO_STORY的活动在Instagram清单中有android:enabled="false"com.instagram.share.ADD_TO_FEED行动活动没有这个。

您可以看到,如果您尝试从图库共享图像,则无法与故事共享。

解决方案很简单:您需要在登录后重新启动Instagram。然后它就可以使用了。如果用户实际上不使用Instagram,这可能是Instagram预防措施,以防止在应用选择器中显示多个Instagram操作。


现在这变得非常有趣:

我们的其他测试设备都会弹出该错误

..因为当你在另一台设备上试用它时,你只需安装Instagram,登录你的测试帐户并开始尝试..它永远不会有效,因为你首先需要重启Instagram应用程序! :)

© www.soinside.com 2019 - 2024. All rights reserved.