В нашем приложении 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.");
}
}
}