标签: uiactivityviewcontroller

如何让我的应用程序出现在UIActivityViewController中以获取文本?

我想我的应用程序出现在UIActivityViewControllerfor text中,在其他应用程序中.例如,从Notes应用程序共享时,如下所示.

在此输入图像描述

将以下内容添加到Info.plist中不会产生任何可见结果(在Notes,Evernote和Simplenote中):

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeIconFiles</key>
        <array>
            <string>icon-text-57.png</string>
            <string>icon-text-72.png</string>
            <string>icon-text-114.png</string>
        </array>
        <key>CFBundleTypeName</key>
        <string>Text</string>
        <key>LSHandlerRank</key>
        <string>Alternate</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>public.text</string>
            <string>public.plain-text</string>
            <string>public.utf8-plain-text</string>
            <string>public.utf16-external-plain-?text</string>
            <string>public.utf16-plain-text</string>
            <string>public.rtf</string>
        </array>
    </dict>
</array>
Run Code Online (Sandbox Code Playgroud)

这可能吗?怎么样?

info.plist uti ios uiactivityviewcontroller

7
推荐指数
1
解决办法
4209
查看次数

带有NSURL的UIActivityViewController到音频文件只显示空投

我正在尝试使用a UIActivityViewController来共享音频文件(.aac).它是我写入沙盒文档目录的临时文件.

NSURLinitWithActivityItem:方法中传递了一个.

[audioData writeToFile:[urlToAudioFile path] options:NSDataWritingFileProtectionNone error:&error];

UIActivityViewController *activity = [[UIActivityViewController alloc] initWithActivityItems:@[urlToAudioFile] applicationActivities:nil];
    [self.view.window.rootViewController presentViewController:activity animated:YES completion:^{
...
}];
Run Code Online (Sandbox Code Playgroud)

当我按下分享按钮时,它需要几秒钟,弹出活动表,唯一的选项是Airdrop.

如何才能显示电子邮件或iMessage等其他选项?是否有回调方法,以便我可以确定"共享"何时完成,以便我可以再次删除临时文件?

有没有办法让我添加音频文件而不必先将其写入磁盘?我不能以某种方式只是传递NSData对象?

ios uiactivityviewcontroller ios7

7
推荐指数
1
解决办法
1233
查看次数

如果用户按下取消,UIActivityViewController完成处理程序仍会调用操作

在我的UIActivityViewController中,我使用完成处理程序来执行"成功共享"通知.它可以工作,但我唯一的问题是,如果用户按下取消,它仍会显示通知.

这是我的完成处理程序代码,

[controller setCompletionHandler:^(NSString *activityType, BOOL completed) {


    CWStatusBarNotification *notification = [CWStatusBarNotification new];
    [notification displayNotificationWithMessage:@"? Successfully Shared Centre!"
                                          forDuration:3.0f];

    notification.notificationLabelBackgroundColor = [UIColor colorWithRed:38.0f/255.0f green:81.0f/255.0f blue:123.0f/255.0f alpha:1.0f];
    notification.notificationLabelTextColor = [UIColor whiteColor];



}];
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助!

ios completionhandler uiactivityviewcontroller

7
推荐指数
2
解决办法
2万
查看次数

在活动视图控制器中共享屏幕截图 - Swift

我正在开发应用程序的一部分,以便当您点按分享按钮时,它可以让您立即分享您的高分榜的屏幕截图以及消息.我无法制作/分享屏幕截图,当我点击分享按钮时,应用程序只允许我复制我的默认文本或"邮件"我的默认文本,不允许我发布到Facebook,Twitter,消息, 和更多.

func shareButtonPress() {

    var postPhrase = "Just hit \(highscore)! Beat it! #SwypIt"

    //Generate the screenshot
    UIGraphicsBeginImageContext(view.frame.size)
    view.layer.renderInContext(UIGraphicsGetCurrentContext())
    var image = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()

    var postImage = UIImage(named: "\(image)")

    var activityViewController : UIActivityViewController = UIActivityViewController(activityItems: [postPhrase, postImage!], applicationActivities: nil)

    self.presentViewController(activityViewController, animated: true, completion: nil)

}
Run Code Online (Sandbox Code Playgroud)

解决这个问题的最佳方式是什么?谢谢!

share screenshot uiactivityviewcontroller swift

7
推荐指数
1
解决办法
4759
查看次数

当调用UIActivityViewController时,IOS 8 iPad应用程序崩溃

当在这个应用程序中在iPhone上调用UIActivityViewController时,它可以很好地工作,但是当在iPad上调用时,应用程序崩溃了.以下是我使用的代码:

func shareButtonPress() {

    //when the share button is pressed, default share phrase is added, cropped image of highscore is added

    var sharingItems = [AnyObject]()

    var shareButtonHighscore = NSUserDefaults.standardUserDefaults().objectForKey("highscore") as Int!

    sharingItems.append("Just hit \(shareButtonHighscore)! Beat it! #Swath")

    UIGraphicsBeginImageContextWithOptions(UIScreen.mainScreen().bounds.size, false, 0);
    self.view.drawViewHierarchyInRect(view.bounds, afterScreenUpdates: true)
    var image:UIImage = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    sharingItems.append(image)

    let activityViewController = UIActivityViewController(activityItems: sharingItems, applicationActivities: nil)

    var barButtonItem: UIBarButtonItem! = UIBarButtonItem()

    activityViewController.excludedActivityTypes = [UIActivityTypeCopyToPasteboard,UIActivityTypeAirDrop,UIActivityTypeAddToReadingList,UIActivityTypeAssignToContact,UIActivityTypePostToTencentWeibo,UIActivityTypePostToVimeo,UIActivityTypePrint,UIActivityTypeSaveToCameraRoll,UIActivityTypePostToWeibo]

    self.presentViewController(activityViewController, animated: true, completion: nil)

}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我正在Swift中编程,在SpriteKit框架中,我不明白为什么应用程序崩溃.

我收到此错误:

Terminating app due to uncaught exception 'NSGenericException', reason: …
Run Code Online (Sandbox Code Playgroud)

crash uiactivityviewcontroller sprite-kit swift ios8

7
推荐指数
1
解决办法
8710
查看次数

UIActivityViewController仅共享文本

我想使用UIActivityViewController分享简单的文本我使用swift,使用xcode 6.3代码非常简单,非常适合照片,但不仅仅是文本,我不想包含任何带有objectsToShare的web URL,只是干净的文本这是代码:

var objectsToShare: ["some text to share"]! 
let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil)

//handler for completed task
activityVC.completionHandler = {(activityType, completed:Bool) in
            if !completed {
                println("cancelled")
                return
            }
reportCompleted() //report to server it's done.
 }

//Excluded Activities Code
activityVC.excludedActivityTypes = [UIActivityTypeAirDrop, UIActivityTypeAddToReadingList, UIActivityTypeCopyToPasteboard ]

//activate the share view
self.presentViewController(activityVC, animated: true,  completion: {
            (complete)  in
            println(complete)

        })
Run Code Online (Sandbox Code Playgroud)

现在我知道这一切都取决于用户有Facebook - 不仅在他的手机上,而且在他的设置上.(我直接从我的手机6尝试了这个,它有Facebook设置,而不是来自模拟器)这个代码曾经工作正常,仍然适用于图像,而不是文本,但由于某种原因,它停止工作文本共享,也许文本本身有关,也许我的代码不好,或者Facebook,改变一些东西.

感谢您对此主题的任何想法.

为了让事情更奇怪,我发现了两件更奇怪的事情.

  1. 发布文本的代码正在模拟器上工作(只要你在设置facebook中添加)
  2. 如果我添加到网址,它也可以工作(在设备中)如果我删除网址它不起作用.

//有效的代码:

var myWebsite = NSURL(string: "http://www.someurl.com/")

    let textToShare = "Swift is awesome!  Check …
Run Code Online (Sandbox Code Playgroud)

facebook sharing uiactivityviewcontroller swift ios8.4

7
推荐指数
2
解决办法
1万
查看次数

iOS 9.3中的Google+正在挂断

我正在使用我的应用程序中的共享选项UIActivityViewController; 它在iOS 9.2中工作正常,并且Google+共享选项在iOS 9.3中无效

为了确认这一点,我已经下载了其他具有共享选项的应用程序,UIActivityViewController问题是应用程序的整个UI都挂了.

我该如何解决这个问题?

编辑1: 代码:

        NSURL * URL =  [[NSURL alloc]initWithString:@"http://domainName/message.php?"];

        NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:URL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
        [request setHTTPMethod:@"GET"];

        NSString *tempEmailId  = (NSString *)[[NSUserDefaults standardUserDefaults] objectForKey:CURRENT_USER_EMAIL_ID_UD_KEY];
        NSString *tempPassword = (NSString *)[[NSUserDefaults standardUserDefaults] objectForKey:CURRENT_USER_PASSWORD_UD_KEY];

        NSString *basicAuthCredentials = [NSString stringWithFormat:@"%@:%@", tempEmailId, tempPassword];
       [request setValue:[NSString stringWithFormat:@"Basic %@", AFBase64EncodedStringFromString(basicAuthCredentials)] forHTTPHeaderField: @"Authorization"];
       //NSLog(@"request %@\n",request);
       [[[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        if (data != nil) {
            NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
            NSArray …
Run Code Online (Sandbox Code Playgroud)

ios google-plus uiactivityviewcontroller

7
推荐指数
1
解决办法
298
查看次数

使用UIActivityViewController无法正常使用Swift 3中的WhatsApp分享实时照片

我正在UIActivityViewController不同的社交媒体上分享图片,视频和LivePhoto .

但是当我在WhatsApp上分享LivePhoto时,会发生以下情况:

  1. 当ActivityViewController存在 - >点击WhatsApp - >它提供第二个联系人列表并快速解散,当我尝试使用ActivityViewController完成处理程序打印错误时,它打印如下:

[core] SLComposeViewController remoteViewController:didTerminateWithError:Error Domain = _UIViewServiceInterfaceErrorDomain Code = 3"(null)"UserInfo = {Message = Service Connection Interrupted} [core] SLComposeViewController completeWithResult:0 [core] SLComposeViewController跳过显式dismiss,因为isBeingDismissed已经是1 SLComposeViewController dealloc

I have tried with this code : 

PHImageManager.default().requestImageData(for: selectedAsset, options: nil, resultHandler: { (imgData, str, image, info) in

                activityItems.append(imgData!)

                let activityViewController = UIActivityViewController(activityItems: activityItems, applicationActivities: nil)
                activityViewController.popoverPresentationController?.sourceView = self.view // so that iPads won't crash
                activityViewController.completionWithItemsHandler = {(activityType: UIActivityType?, completed: Bool, returnedItems:[Any]?, …
Run Code Online (Sandbox Code Playgroud)

objective-c ios uiactivityviewcontroller swift3 apple-live-photos

7
推荐指数
1
解决办法
683
查看次数

IOS swift如何知道activityViewController何时成功使用

我有一个使用的tableView,UIActivityViewController因此用户可以在其他第三方网络Facebook,Twitter,短信等上共享内容.我有一个被调用的函数IncreaseShareByOne(),它的目的是计算共享内容的次数.我的问题是,现在每次UIActivityViewController点击时都会触发功能.在某种程度上,我可以找出用户是否真的共享某些内容,以便我可以正确使用该功能?变得有时你打开UIActivityViewController并决定不分享任何东西,所以我想抓住而不是使用那个功能.我是swift的新手,正在使用版本3.

func sharedShareAction(controller: UIViewController, sender: UIButton) {

    controller.present(activityViewController,animated: true,completion: nil)
    IncreaseShareByOne()
}
Run Code Online (Sandbox Code Playgroud)

ios uiactivityviewcontroller swift swift3

7
推荐指数
1
解决办法
831
查看次数

UIActivityViewController在iOS 11上复制项目两次

我正在使用UIActivityViewController共享webview网址iOS 11和使用时Copy然后转到消息应用然后粘贴,它被粘贴两次.

出于好奇,我尝试使用Safari,Chrome,Firefox以及除消息之外的其他应用程序.结果很有趣:

  • 来自Safari的应对程序始终适用于任何应用程序
  • 从Chrome或FireFox处理应用程序在Notes应用程序中工作,但它复制了任何具有TextField(Messages,WhatsApp,Slack,Signal,...)的应用程序中的复制文本

这是我的简单代码

func shareURL(title: String, url: URL) {
    var activityItems = [AnyObject]()
    activityItems.append(TitleActivityItemProvider(title: title))

    activityItems.append(url as AnyObject)

    let activityViewController = UIActivityViewController(activityItems: activityItems, applicationActivities: nil)
    self.present(activityViewController, animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)

这是TitleActivityItemProvider班级

class TitleActivityItemProvider: UIActivityItemProvider {
    static let activityTypesToIgnore = [UIActivityType.copyToPasteboard]

    init(title: String) {
        super.init(placeholderItem: title)
    }

    override var item : Any {
        if let activityType = activityType {
            if TitleActivityItemProvider.activityTypesToIgnore.contains(activityType) {
                return NSNull()
            }
        }
        return placeholderItem! as …
Run Code Online (Sandbox Code Playgroud)

ios uiactivityviewcontroller swift3 ios11

7
推荐指数
1
解决办法
510
查看次数