Bla*_*ake 12 ios uiactivityviewcontroller ios8-share-extension
我正在努力让我的应用程序正确共享URL,以便在共享表中显示"在Safari中打开"和"在Chrome中打开"活动项目.我尝试过几种不同的方式共享URL:
NSURL *data = _article.url;
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[data] applicationActivities:nil];
Run Code Online (Sandbox Code Playgroud)
作为参考,这些是我想要出现的两个活动项目.
您可以使用一些(小型)库来提供自定义控件UIActivity来获取“在 Safari 中打开”和“在 Chrome 中打开”活动项。
Chrome:ARChrome活动
@IBAction func shareClick(_ sender: Any) {
var sharingItems = [AnyObject]()
var sharingActivities = [UIActivity]()
sharingItems.append(URL(string: shareURL)! as AnyObject)
sharingActivities.append(TUSafariActivity())
sharingActivities.append(ARChromeActivity())
let activityViewController = UIActivityViewController(activityItems: sharingItems, applicationActivities: sharingActivities)
activityViewController.popoverPresentationController?.barButtonItem = self.navigationItem.rightBarButtonItem;
self.present(activityViewController, animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)更多自定义控件可以在https://github.com/shu223/UIActivityCollectionUIActivity上找到
似乎有一个非常流行的库“SVWebViewController”用于在应用程序网络视图中显示。该库还包含一些不错的活动项目,您可以使用它们来执行此操作。
https://github.com/TransitApp/SVWebViewController
这是您可以用来使其工作的代码示例(不要忘记在代码中也包含标头)
#import "SVWebViewControllerActivityChrome.h"
#import "SVWebViewControllerActivitySafari.h"
- (void)share:(id)sender {
NSArray *activities = @[[SVWebViewControllerActivitySafari new], [SVWebViewControllerActivityChrome new]];
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[_article.url] applicationActivities:activities];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3320 次 |
| 最近记录: |