Dur*_*adu 5 share custom-url ios airdrop
我的下一个问题是:我有一个通过AirDrop共享自定义URL方案的应用程序:
NSMutableString *mutableString = [NSMutableString stringWithString:@"appName://"];
[mutableString appendString:contentProduct.url];
NSURL *airDropUrl = [[NSURL alloc] initWithString:mutableString];
LAAirDropCustomUrl *customUrlSCHEMA = [[LAAirDropCustomUrl alloc] initWithUrl:airDropUrl];
NSArray *activityItems = [NSArray arrayWithObjects:customUrlSCHEMA, nil];
UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:activityItems
applicationActivities:nil];
Run Code Online (Sandbox Code Playgroud)
我已在项目目标的“信息”部分中添加了URL方案,并且通过AirDrop进行共享就可以了。另一方面,如果另一台设备没有该应用程序,则会显示默认警报,指出“设备x试图在您没有的应用程序上共享某东西,想从appstore获取吗?”。我想,如果其他设备没有该应用程序,则发送浏览器可以打开的其他URL。
如果我尝试在activityItems之间添加默认的NSURL *,则会收到一条错误消息,提示“设备x无法接收此类项目”
NSURL *airDropUrl = [[NSURL alloc] initWithString:mutableString];
NSArray *activityItems = [NSArray arrayWithObjects:airDropUrl,customUrlSCHEMA , nil];
Run Code Online (Sandbox Code Playgroud)
LAAirDropCustomUrl实现为:
- (id)initWithUrl:(NSURL *)url {
if (self = [super init]) {
_url = url;
}
return self;
}
- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController {
return self.url;
}
- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType {
if ([activityType isEqualToString:UIActivityTypeAirDrop]) {
return self.url;
}
return nil;
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,您无法使用当前的 API 完成您在这里尝试做的事情。如果您认为这是一个遗漏,您应该向 Apple提交错误,请求此功能。
每当应用程序尝试共享混合项目时,就会显示错误“设备 x 无法接收此类项目”。例如,当应用程序尝试同时共享 PDF 和 Pages 文档时,就会显示此错误警报。混合 url 方案也是如此,这就是您的情况(http://some-url.com和 appName://some-custom-url)中发生的情况。
| 归档时间: |
|
| 查看次数: |
1191 次 |
| 最近记录: |