Ios 使用AssetPath创建NSURL
使用UIImagePickerController,我能够获得像Ios 使用AssetPath创建NSURL,ios,objective-c,xcode,instagram-api,Ios,Objective C,Xcode,Instagram Api,使用UIImagePickerController,我能够获得像资产这样的媒体的资产路径-library://asset/asset.MOV?id=2A2CE6C9-C178-4395-977B-E6F159BF6D5E&ext=MOV NSURL *instagramURL = [NSURL URLWithString:[NSString stringWithFormat:@"instagram://library?AssetPath=%@&InstagramCaption=%@",[
资产这样的媒体的资产路径-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];
}
这是您应该如何将资产路径转换为有效的
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];
}
参考我猜您会使用UIImagePickerController从库中选择照片或打开相机?无论哪种方式,您都必须使用以下委托方法:
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
}
在该方法中,您可以获取资产的URL,然后将其传递给资产URL的AVAsset framework,然后将其放入Instagram URL中
(NSURL *)[info valueForKey:UIImagePickerControllerReferenceURL];
使用上述代码在imagePickerController
delegate方法中获取图像的URL。然后你可以把它传给阿瓦塞
更新
这也是一个有用的链接,它解释了如何使用UIImagePickerController
-
希望这有帮助:)
.percentEscape
是自定义属性吗?是。。。它是。更新了答案。你能分享整个代码吗?分享一段视频到Instagram?不,这违反了SF的规定。您的目标是使用此处已回答的AssetPath创建NSURL。请自己尝试,如果仍然发现问题,请在此处共享您的代码或提出另一个问题,这肯定会对您有所帮助。我可以问您一个问题吗。当您这样做时,您是否发现Instagram应用程序有时会转到以前添加的图像/视频?也就是说,由于某种原因,它打开了第二个到最新的一个?不,上面的instagramURL打开了Instagram AppWell的Home选项卡。我一直在测试它,它打开了照片/视频上传程序。你能分享全部代码吗?我基本上使用了这篇文章中的代码: