gpt4 book ai didi

ios - 如何将我的当前位置分享给 UIActivityViewController?

转载 作者:技术小花猫 更新时间:2023-10-29 11:15:36 28 4
gpt4 key购买 nike

我知道我可以向 UIActivityViewController 添加文本、URL、图像等内容,但是如何添加我的当前位置以及我所在位置的缩略图,如下面的推文所示?换句话说,如何在 UIActivityViewController 中共享坐标“纬度、经度”?

谢谢

a tweet with location

最佳答案

我有一个完整的代码示例和所有重要的类/方法来执行此操作。我知道答案已经很晚了,但这可能对以后的人有帮助:

- (void)shareTab
{
PFGeoPoint *geoPoint = self.vidgeoObject[kParseLocation];
NSString *coordinates = [NSString stringWithFormat:@"http://maps.apple.com/maps?q=%f,%f", geoPoint.latitude, geoPoint.longitude];
CLLocation *userLocation = [[CLLocation alloc] initWithLatitude:geoPoint.latitude longitude:geoPoint.longitude];
CLGeocoder *geocoder;
geocoder = [[CLGeocoder alloc]init];

[geocoder reverseGeocodeLocation:userLocation completionHandler:^(NSArray *placemarks, NSError *error)
{
CLPlacemark *rootPlacemark = placemarks[0];
MKPlacemark *evolvedPlacemark = [[MKPlacemark alloc]initWithPlacemark:rootPlacemark];

ABRecordRef persona = ABPersonCreate();
ABRecordSetValue(persona, kABPersonFirstNameProperty, (__bridge CFTypeRef)(evolvedPlacemark.name), nil);
ABMutableMultiValueRef multiHome = ABMultiValueCreateMutable(kABMultiDictionaryPropertyType);

bool didAddHome = ABMultiValueAddValueAndLabel(multiHome, (__bridge CFTypeRef)(evolvedPlacemark.addressDictionary), kABHomeLabel, NULL);

if(didAddHome)
{
ABRecordSetValue(persona, kABPersonAddressProperty, multiHome, NULL);

NSLog(@"Address saved.");
}

NSArray *individual = [[NSArray alloc]initWithObjects:(__bridge id)(persona), nil];
CFArrayRef arrayRef = (__bridge CFArrayRef)individual;
NSData *vcards = (__bridge NSData *)ABPersonCreateVCardRepresentationWithPeople(arrayRef);

NSString* vcardString;
vcardString = [[NSString alloc] initWithData:vcards encoding:NSASCIIStringEncoding];
NSLog(@"%@",vcardString);


NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents directory

NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"pin.loc.vcf"];
[vcardString writeToFile:filePath
atomically:YES encoding:NSUTF8StringEncoding error:&error];

NSURL *url = [NSURL fileURLWithPath:filePath];
NSLog(@"url> %@ ", [url absoluteString]);


// Share Code //
NSArray *itemsToShare = [[NSArray alloc] initWithObjects: url, nil] ;
UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:itemsToShare applicationActivities:nil];
activityVC.excludedActivityTypes = @[UIActivityTypePrint,
UIActivityTypeCopyToPasteboard,
UIActivityTypeAssignToContact,
UIActivityTypeSaveToCameraRoll,
UIActivityTypePostToWeibo];

if (UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPhone)
{
[self presentViewController:activityVC animated:YES completion:nil];
} else
{
popControl = [[UIPopoverController alloc] initWithContentViewController:activityVC];
}

}];

}

关于ios - 如何将我的当前位置分享给 UIActivityViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20064781/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com