Создайте NSURL, используя AssetPath

Используя UIImagePickerController, я могу получить путь к активу для носителя, такого как assets-library://asset/asset.MOV?id=2A2CE6C9-C178-4395-977B-E6F159BF6D5E&ext=MOV.

NSURL *instagramURL = [NSURL URLWithString:[NSString stringWithFormat:@"instagram://library?AssetPath=%@&InstagramCaption=%@",[referenceURL absoluteString], strInstagramCaption]];

Теперь я хочу преобразовать этот путь актива в NSURL, чтобы передать его в следующий блок кода:

if ([[UIApplication sharedApplication] canOpenURL:instagramURL])
{
    [[UIApplication sharedApplication] openURL:instagramURL];
}

person Vaibhav Jhaveri    schedule 01.06.2015    source источник
comment
Могу я задать вам вопрос. Когда вы это сделаете, вы обнаружите, что приложение Instagram иногда переходит к изображению/видео, которое было добавлено ранее? Другими словами, по какой-то причине он открывает второй по последнему?   -  person    schedule 01.06.2015
comment
Нет, указанный выше instagramURL открывает вкладку «Главная» в приложении Instagram.   -  person Vaibhav Jhaveri    schedule 01.06.2015
comment
Ну, я тестировал его, и он открывает загрузчик фото / видео.   -  person    schedule 01.06.2015
comment
Не могли бы вы поделиться всем кодом?   -  person Vaibhav Jhaveri    schedule 01.06.2015
comment
В основном я использую код из этого сообщения: stackoverflow.com/a/27702493/4657588   -  person    schedule 01.06.2015
comment
Я хочу assets-library://asset/asset.JPG?id=B202E621-FCCB-48BA-817C-8DF9605ED799&ext=JPG путь из /var/mobile/Containers/Data/Application/ABADEDFA-FDEE-47BA-A7F5-575AAA40F937/Documents/InstaImage.png пути. Пожалуйста помоги   -  person Vaibhav Jhaveri    schedule 02.06.2015
comment
Хорошо, я добавил ответ, думаю, он может решить вашу проблему.   -  person    schedule 02.06.2015


Ответы (2)


Вот как вы должны преобразовать путь ресурса в действительный NSUrl:-

NSURL *instagramURL = [NSURL URLWithString:[[NSString stringWithFormat:@"instagram://library?AssetPath=%@&InstagramCaption=%@",[assetURL absoluteString],caption]stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
    if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) {
        [[UIApplication sharedApplication] openURL:instagramURL];
    }

Направлено с этого

person Vizllx    schedule 01.06.2015
comment
.percentEscape является пользовательским свойством? - person Vaibhav Jhaveri; 01.06.2015
comment
Да, это. Обновил ответ. - person Vizllx; 01.06.2015
comment
Не могли бы вы поделиться всем кодом, чтобы поделиться видео в Instagram? - person Vaibhav Jhaveri; 01.06.2015
comment
Нет, это против правил SF. Ваша цель состояла в том, чтобы создать NSURL с использованием AssetPath, на который уже дан ответ здесь. Попробуйте сами, а затем, если вы все же обнаружите проблему, поделитесь своим кодом здесь или задайте другой вопрос, тогда он обязательно вам поможет. - person Vizllx; 01.06.2015

Я полагаю, вы бы использовали UIImagePickerController, чтобы выбрать фотографию из библиотеки или вызвать камеру? В любом случае вы должны использовать следующий метод делегата:

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

}

Что ж, в этом методе вы можете получить URL-адрес актива, а затем передать его в платформу AVAsset для URL-адреса актива, а затем поместить его в URL-адрес Instagram.

(NSURL *)[info valueForKey:UIImagePickerControllerReferenceURL];

Используйте приведенный выше код, чтобы получить URL-адрес изображения в методе делегата imagePickerController. Затем вы можете передать это в AVAsset.

Обновление Это также полезная ссылка для просмотра, она объясняет, как использовать UIImagePickerController - http://www.appcoda.com/ios-programming-camera-iphone-app/.

Надеюсь это поможет :)

person Community    schedule 02.06.2015