Я пытаюсь найти решение, когда смогу делиться изображениями из своего приложения через Instagram.
В настоящее время я пытаюсь сделать это с намерением, и это выглядит так:
IntentLauncherAndroid .startActivityAsync('android.intent.action.SEND', {
type: 'image/*',
extra: {
'android.intent.extra.STREAM': encodeURIComponent(uri)
},
packageName: 'com.instagram.android'
})
в этом случае переменная 'uri' выглядит как
file:///data/user/0/host.exp.exponent/files/ExperienceData/%2540anonymous%252Frepost-for-free-d795b3f6-6148-4b16-9aa4-b3550402e0a2/images/3.jpg
С этим решением я получу исключение
Error: Permission Denial: starting Intent { act=android.intent.action.SEND cmp=com.viber.voip/.messages.ui.forward.ForwardActivity (has extras) } from ProcessRecord{5e88e89d0 18222:host.exp.exponent/u0a8} (pid=18222, uid=10008) not exported from uid 10216
at createErrorFromErrorData (D:\projects\repost-for-free\repost-for-free\node_modules\react-native\Libraries\BatchedBridge\NativeModules.js:146)
at D:\projects\repost-for-free\repost-for-free\node_modules\react-native\Libraries\BatchedBridge\NativeModules.js:95
at MessageQueue.__invokeCallback (D:\projects\repost-for-free\repost-for-free\node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:397)
at D:\projects\repost-for-free\repost-for-free\node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:127
at MessageQueue.__guard (D:\projects\repost-for-free\repost-for-free\node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:297)
at MessageQueue.invokeCallbackAndReturnFlushedQueue (D:\projects\repost-for-free\repost-for-free\node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:126)
at debuggerWorker.js:72
, и я не могу понять, как решитьэто и почему я вижу там cmp = com.viber.voip / .messages.ui.forward.ForwardActivity?
, если я заменю android.intent.action.SEND на 'android.intent.action.VIEW'он сможет инициировать намерение, но предложит неправильные приложения для его обработки (некоторые приложения по умолчанию, такие как карты Google, контакты и т. д.).
Возможно, я не установил правильные разрешения, или есть некоторые конкретныедля вызова намерения «android.intent.action.SEND»?Я вызываю свое намерение после загрузки этого изображения (изображение уже существует на моем телефоне, когда я вызываю намерение).
PS Я попытался преобразовать решение Java в решение Expo (JS), которое можно найти здесь 'https://www.instagram.com/developer/mobile-sharing/android-intents/'