【问题标题】:Share String + Image through WhatsApp in an iOS 9在 iOS 9 中通过 WhatsApp 共享字符串 + 图像
【发布时间】:2016-04-20 13:16:12
【问题描述】:

在 iOS 9 + Xcode 7.3 中通过 WhatsApp 共享字符串 + 图像,出现错误。 iOS 8 完美运行。 代码:

UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:sharingItems applicationActivities:nil];

    NSArray *excludeActivities = @[UIActivityTypePrint,
                                   UIActivityTypeCopyToPasteboard,
                                   UIActivityTypeAssignToContact,
                                   UIActivityTypeSaveToCameraRoll,
                                   UIActivityTypeAddToReadingList,
                                   UIActivityTypeAirDrop];

    activityController.excludedActivityTypes = excludeActivities;

    [activityController setValue:[NSString stringWithFormat:@"Test msg"] forKey:@"subject"];

    [self presentViewController:activityController animated:YES completion:nil];

【问题讨论】:

    标签: ios objective-c whatsapp


    【解决方案1】:

    在iOS 9 中,您需要在项目.plist 文件中添加此行:

    <key>LSApplicationQueriesSchemes</key>
     <array>
      <string>whatsapp</string>
     </array>
    

    在.plist中添加后检查。

    【讨论】:

    • @Ronak Chaniyara 我也尝试过,但它不起作用。
    • 在这里查看答案可能会有所帮助http://stackoverflow.com/a/36622573/5575752
    • 这个我也用过,不过iOS 8可以用,iOS 9不行!
    • @Mahipalsinh 比你在 iOS9 上尝试的更好吗?
    • @iPhoneDev 是的,当我在 iOS 9 中进行测试时,那个时候会给我这样的警报。但是,我使用下面的代码解决了这个问题
    【解决方案2】:

    我用这个代码解决了问题:

    - (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController
    {
        return @"";
    }
    
    - (id)activityViewController:(UIActivityViewController )activityViewController itemsForActivityType:(NSString )activityType
    {
    
        if ([activityType isEqualToString:@"net.whatsapp.WhatsApp.ShareExtension"]) {
    
            NSString *strShare = @“Test string”;
    
            NSString *string = [NSString stringWithFormat:@"whatsapp://send?text=%@",strShare];
            NSURL *url = [NSURL URLWithString:[string stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
            [[UIApplication sharedApplication] openURL: url];
    
            return @"";
    
        }
        else
        {
            return  sharingItems;
        }
    }
    

    【讨论】:

    • 如何在按钮点击时调用该方法?
    • 这两个是UIActivityItemSource的Datasource方法。所以,它会自动调用。请参考这个网址:nshipster.com/uiactivityviewcontroller
    • 但我想调用按钮而不是我设置委托或方法的位置?
    【解决方案3】:

    您可以添加图片网址,因为无法共享图片。 像这样添加图片网址

    NSArray *arrData = @[@"Post Title", @"imageURL"];
    UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:arrData applicationActivities:nil];
    NSArray *excludeActivities = @[UIActivityTypeAirDrop,
                                   UIActivityTypePrint,
                                   UIActivityTypeAssignToContact,
                                   UIActivityTypeSaveToCameraRoll,
                                   UIActivityTypeAddToReadingList];
    activityVC.excludedActivityTypes = excludeActivities;
    
    [self presentViewController:activityVC animated:YES completion:nil];
    

    【讨论】:

      猜你喜欢
      • 2012-01-11
      • 2013-12-23
      • 1970-01-01
      • 1970-01-01
      • 2018-01-05
      • 2012-12-21
      • 2017-01-01
      • 2014-09-05
      • 1970-01-01
      相关资源
      最近更新 更多