【发布时间】:2018-10-09 08:44:12
【问题描述】:
在我们的 React Native 应用程序中,我们试图让我们的用户根据我们视图/组件中的选择直接将特定图像分享到提要或故事中。
当我们尝试直接使用“com.instagram.share.ADD_TO_FEED”进行分享时,它以一致的方式完美运行。
但是,当尝试直接使用“com.instagram.share.ADD_TO_STORY”进行分享时,我们会收到以下错误:
未找到处理 Intent 的 Activity { act=com.instagram.share.ADD_TO_STORY > typ=image/* flg=0x10000000 pkg=com.instagram.android(有附加功能)}
我们让它只能在一台设备上工作(特别是使用三星 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.");
}
}
}
【问题讨论】:
-
我们已经在这样做了...
-
您好,对我们来说是“类型”,必须是“video/mp4”,可能是“image/*”是不允许的。
-
@tobidude 你的建议对我有用。我认为您需要从评论转换为答案。
-
成功了!很高兴升级。
标签: android facebook react-native instagram