ios – 无法使用UIActivityViewController以NSDATA的形式共享Docx

ios – 无法使用UIActivityViewController以NSDATA的形式共享Docx,第1张

概述我正在使用UIWebView打开一个Docx文件,该文件是从另一个控制器传递到webview的NSDATA形式.我正在使用UIAcvitityController在社交媒体上分享内容.它适用于图像类型和PDF类型,但它不适用于DOCX和XLSX.我需要做些什么特别的事吗? UIActivityViewController *activityViewController = [[UIActivity 我正在使用UIWebVIEw打开一个Docx文件,该文件是从另一个控制器传递到webvIEw的NSDATA形式.我正在使用UIAcvitityController在社交媒体上分享内容.它适用于图像类型和pdf类型,但它不适用于DOCX和XLSX.我需要做些什么特别的事吗?
UIActivityVIEwController *activityVIEwController = [[UIActivityVIEwController alloc] initWithActivityItems:self.downloadData applicationActivitIEs:self.applicationActivitIEs];
解决方法 您需要为activityItems使用自定义数据,并在协议UIActivityItemSource中实现方法.跟着它:

file:ShareData.h

#import <Foundation/Foundation.h>#import <UIKit/UIKit.h>@interface ShareData : NSObject<UIActivityItemSource>@property (nonatomic,strong) NSData *data;@property (nonatomic,strong) NSURL *url;@end

文件:ShareData.m

#import "ShareData.h"@implementation ShareData-(ID)activityVIEwControllerPlaceholderItem:(UIActivityVIEwController *)activityVIEwController {    return self.data;}-(ID)activityVIEwController:(UIActivityVIEwController *)activityVIEwController itemForActivityType:(Nsstring *)activityType {    if ([activityType isEqualToString:UIActivityTypeAirDrop]) {        return self.data;    }    return self.url;}-(Nsstring*)activityVIEwController:(UIActivityVIEwController *)activityVIEwController subjectForActivityType:(Nsstring *)activityType {    return @"share data";}-(Nsstring*)activityVIEwController:(UIActivityVIEwController *)activityVIEwController dataTypeIDentifIErForActivityType:(Nsstring *)activityType {    if ([activityType isEqualToString:UIActivityTypeAirDrop]) {        return @"test";    }    return nil;}@end

并且,在社交媒体上分享内容:

ShareData *share = [ShareData new];share.data = downloadData; // one of your downloadDatashare.url = downloadURL; // url for the downloadData UIActivityVIEwController *activityVIEwController = [[UIActivityVIEwController alloc] initWithActivityItems:@[share] applicationActivitIEs:nil];

上面的代码已经过测试,它适用于DOCX和XLSX.

源演示在这里:https://github.com/ocarol/UIActivityViewControllerDemo

总结

以上是内存溢出为你收集整理的ios – 无法使用UIActivityViewController以NSDATA的形式共享Docx全部内容,希望文章能够帮你解决ios – 无法使用UIActivityViewController以NSDATA的形式共享Docx所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1103106.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存