iOS 9 分享菜单不能添加微信公众号添加子菜单吗

Pages: 1/7
主题 : UIActivityViewController 调用微信分享的问题
级别: 骑士
UID: 526915
可可豆: 313 CB
威望: 297 点
在线时间: 154(时)
发自: Web Page
来源于&&分类
UIActivityViewController 调用微信分享的问题&&&
  
微信更新了IOS版本的,说能够在safari,相册分享链接跟图片了。   不过我自己写的代码,分享的时候出现了问题,有谁可以试验一下这个到底问题是微信的毛病,还是怎么的?我怀疑是否share extension能够判断来自哪里的分享,然后屏蔽了其他的???    在IOS的微信升级了,可以通过相册分享多张图片到朋友圈了,系统分享的。    不过我自己写的代码不能使用,出现 plugin com.tencent.xin.sharetimeline interruptedcom.tencent.xin.sharetimeline invalidated  谁用IOS的UIActivityViewController分享。。。代码就是网上的例子 UIImage *imageToShare = [UIImage imageNamed:@&iosshare.jpg&];   NSArray *activityItems = @[imageToShare];   UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:activityItems applicationActivities:nil];   [self presentViewController:activityVC animated:TRUE completion:nil];  --------------------------------分割线1---------------------------------------老版本的方法在8楼,不过不能用了,仅供参考------------------------------分割线2----------------------------------------新版本微信这个方法不好使了刚看了新版本微信的extension的plist,里面增加了文件的分享,最大1个。。。原来的url方法应该被当成文件处理了。。。。所以多个不行。。。。新方法研究中。。。。哎,最郁闷是相册好用。。。不知道传了什么 ----------------------------分割线3--------------------------------------------发现阿里的采源宝可以分享,不过如果不是做淘宝的可能使用比较迷糊,我也是研究了一阵才会用,原理不知道,不过自己写的extension收到的并不是单纯的public.image类型,而是public.file-url跟public.jpeg类型。跟最开始说不好用的方法类似,但是人家确实能够弹出来微信分享,原因不明。-----------------------------分割线4-----------------------------------------有几个朋友联系我,站内信发了,抱歉,平时不上论坛,只有遇到问题才来,所以回复晚了,...我也是ios新手,所以基本上就是讨论扯淡,可能会让大家失望...-----------------------------分割线5-----------------------------------------后来解决了,不过为了让自己的app还有一起朋友的app飞一阵,所以迟些公布,但是有些人加了我的qq,我既然跟别人约定迟些公布,所以只是提示了一下,不过确实都蛮厉害,基本都解决了,有一些弄了很久,我也很抱歉,毕竟答应了别人,既然是承诺了,就迟些公开。。。。下面是思路跟代码,其实可能没那么复杂。先说说思路:其实还是用file-url.不过这个因为腾讯的原因,约定了只能传递 一个file,所以传递多个图片的时候就不会弹出来了...... 所以必须处理一下。所以就是实现extension protocol 这个东西,让弹出分享的时候以为是图片,实际传递的时候传递file就可以了。代码如下。建立一个新的类   ----- .h -----#import &Foundation/Foundation.h&#import &UIKit/UIKit.h&@interface SharedItem : NSObject&UIActivityItemSource&-(instancetype)initWithData:(UIImage*)img andFile:(NSURL*)@property (nonatomic, strong) UIImage *@property (nonatomic, strong) NSURL *@end----.m------#import &SharedItem.h&@implementation SharedItem-(instancetype)initWithData:(UIImage *)img andFile:(NSURL *)file{    self = [super init];    if (self) {        _img =        _path =    }    }-(instancetype)init{    //不期望这种初始化方式,所以返回nil了。    }#pragma mark - UIActivityItemSource-(id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController{    return _}-(id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType{    return _}-(NSString*)activityViewController:(UIActivityViewController *)activityViewController subjectForActivityType:(NSString *)activityType{    // 这里对我这分享图好像没啥用....    return @&&;}@end-------- 调用部分------NSMutableArray *activityItems = [NSMutableArray array];[activityItems addObject:self];SharedItem *item = [[SharedItem alloc] initWithData:img andFile:path];[activityItems addObject:item];SharedItem *item2 = [[SharedItem alloc] initWithData:img andFile:path];[activityItems addObject:item2];    UIActivityViewController *activityView = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];activityView.modalInPopover =activityView.restorationIdentifier = @&activity&;[self presentViewController:activityView animated:YES completion:nil];大概就是这么回事......这里其实还有一些可以优化的地方.......比如那个img其实根本没用。。。。呵呵。。。不过既然代码写上了也懒得改了。。。----------------------------------------分割线6-----------------------------------把自己qq删了。。。最近太多人加我,说啥的都有,很郁闷......----------------------------------------分割线7-----------------------------------引用 引用第43楼折尽尘沙于 15:08发表的&&:    百度网盘下载    提取码  ptzm 有朋友写的demo,感谢支持。[ 此帖被fifaboy在 10:46重新编辑 ]
级别: 新手上路
UID: 527421
可可豆: 16 CB
威望: 6 点
在线时间: 0(时)
发自: Web Page
LZ有没有找到办法?最近也被这个困扰了,不知道有没有办法把微信屏蔽掉。
级别: 新手上路
可可豆: 13 CB
威望: 13 点
在线时间: 247(时)
发自: Web Page
我也出现了。fuck
级别: 新手上路
可可豆: 1 CB
威望: 1 点
在线时间: 43(时)
发自: Web Page
有人解决了么?
级别: 骑士
UID: 526915
可可豆: 313 CB
威望: 297 点
在线时间: 154(时)
发自: Web Page
&&由于有人问我这个问题,虽然我这个也不算完全解决了,但是至少有了一点点突破吧。回复一下,希望对大家有用,另外还是觉得最主要是微信官方做出一些处理,但是就怕官方就是不想让分享。。。下面是具体思路,可以试试,就不贴代码了,代码写的比较丑陋。。。=====以下------那个问题后来我也不知道算是解决了,还是没解决,因为后来微信升级了,我代码也改了,所以不知道是代码改的问题还是微信升级的问题。现在能发送了,但是发送了也有一些问题,问题就是图片的顺序并不是我设定的顺序,不过这个问题相比不能分享没那么严重。我的解决方法你可以试试,不知道是否能解决,就不粘具体代码了,就说个思路比较简单,先试试要是不行,再联系我也行。大概的思路就是把图片保存到本机缓存,然后把缓存图片的uri当成参数分享,基本就能分享成功。另外就是保存的图片最好尺寸小一点,jpg格式,最好压缩一下,反正就是保证分辨率不太大,而且占的磁盘空间也不算大。否则一些比较大分辨率的图片还是分享有问题。。。所以这个我也不清楚算是解决了还是没解决。。。反正也只能投机取巧的用这种方法试试了。
级别: 新手上路
UID: 336947
可可豆: 11 CB
威望: 10 点
在线时间: 266(时)
发自: Web Page
大概的思路就是把图片保存到本机缓存,然后把缓存图片的uri当成参数分享,基本就能分享成功。 这个具体怎么实现?能看下代码吗
级别: 新手上路
可可豆: 1 CB
威望: 1 点
在线时间: 53(时)
发自: Web Page
回 5楼(思念也沉了海) 的帖子
就是ActivityItems不要用uiimage的数组当参数,把image转成data,再writeToFile, 然后再用fileURLWithPath: ,把url数组当参数基本就能成功了。
级别: 新手上路
可可豆: 1 CB
威望: 1 点
在线时间: 5(时)
发自: Web Page
我按6楼的方法还是不行,根本不没有微信选框,能贴下代码吗?麻烦了
级别: 骑士
UID: 526915
可可豆: 313 CB
威望: 297 点
在线时间: 154(时)
发自: Web Page
一直没回复,抱歉,其实有点私心,毕竟自己做的同类产品暂时没这个功能...不过好几个人都问了,我也觉得这点小程序也算不上什么门槛,不如大家都看看,也算留个名...另外就是还有bug。。。以下程序并不是都好使,不过在我的机器上都ok,有以下的限制,希望大家都检查一下自己的设备是否能用。另外就是分享的顺序,可能会乱序,这个我一直无法解决。。。如果有人能处理了,希望也提供一下。1.&&ios8.0以上。2. 微信版本,尽量比较新。以上两个功能,可以用在相册里面选择一个图片,看看是否可以分享到微信,如果可以,证明系统跟微信版本都ok。3. 要分享的图片不要太大,这个问题,我遇到过,所以最后我在上传到服务器的时候,就处理了,所以这里下载的网络图片,都是很小的,没有进行压缩。如果选择本机图片,建议进行压缩之后,用新的压缩过的图片进行分享。我试验过,一些png图片大概3M左右就会无法弹出微信分享的情况。最后我都弄到300K之内的jpg图片了。。。基本上不会出现因为图片大导致的问题。。。以上三点满足之后,下面的代码,在我的设备上是可以使用的。。。部分代码因为有自己的数据结构,所以可能会导致迷惑,但是相信大家都能看明白个思路,主要就是添加的分享类型我试验了好多,貌似就这个成功率最高。NSMutableArray *activityItems = [NSMutableArray array];&&&&NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);&&&&NSString *cachesDir = [paths objectAtIndex:0];&&&&NSFileManager *fileManager = [NSFileManager defaultManager];&&&&&&&&for(int i = 0;i&9;i++)&&&&{&&&&&& //文件名请自己处理&&&&&&&&NSString *filename = [NSString stringWithFormat:@&car/shared_%@.jpg&, @&1&];&&&&&&&&NSString *filestr = [NSString stringWithFormat:@&%@/%@&, cachesDir, filename];&&&&&&&&if(![fileManager fileExistsAtPath:filestr])&&&&&&&&{&&&&&&&&&&&&//图片路径请处理成自己的&&&&&&&&&&&&UIImage * imageFromURL = [PicCache getImageFromURL:[NSString stringWithFormat:@&%@%@&,“&, ”FFFF.jpg&]];&&&&&&&&&&&&[PicCache saveImage:imageFromURL withFileName:filestr ofType:@&jpg&];&&&&&&&&}&&&&&&&&NSURL *shareobj = [NSURL fileURLWithPath:filestr];&&&&&&&&// 试验了好多参数,就这个参数部分好使了。&&&&&&&&[activityItems addObject:shareobj];&&&&&&&&&&&&}&&&&&&&&NSLog(@&%@&,activityItems);&&&&UIActivityViewController *activityView = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];&&&&// 这个参数貌似是ipad必须填写??有点忘记了。&&&&activityView.modalInPopover =&&&&activityView.restorationIdentifier = @&activity&;&&&&[self presentViewController:activityView animated:YES completion:nil];
级别: 骑士
UID: 526915
可可豆: 313 CB
威望: 297 点
在线时间: 154(时)
发自: Web Page
picCache是个功能类,没啥正经功能。。。。就是抽象出来一些保存读取的。。。#import &Foundation/Foundation.h&#import &PicCache.h&@interface PicCache(){}@end@implementation PicCache+(UIImage *) getImageFromURL:(NSString *)fileURL {&&&&NSLog(@&执行图片下载函数&);&&&&UIImage *&&&&&&&&NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:fileURL]];&&&&result = [UIImage imageWithData:data];&&&&&&&&}+(NSData *) getDataFromURL:(NSString *)fileURL {&&&&NSLog(@&执行图片下载函数&);&&&&&&&&NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:fileURL]];&&&&&&&&}+(UIImage *) loadImage:(NSString *)fileName{&&&&UIImage * result = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@&%@&, fileName]];&&&&&&&&}+(void) saveImage:(UIImage *)image withFileName:(NSString *)imageName ofType:(NSString *)extension{&&&&NSString *filePath = imageN&&&&if ([[extension lowercaseString] isEqualToString:@&png&])&&&&{&&&&&&&&BOOL isOK = [UIImagePNGRepresentation(image) writeToFile:filePath atomically:YES];&&&&&&&&NSLog([NSString stringWithFormat:@&%d&,isOK]);&&&&}&&&&else if ([[extension lowercaseString] isEqualToString:@&jpg&] || [[extension lowercaseString] isEqualToString:@&jpeg&])&&&&{&&&&&&&&BOOL isOK = [UIImageJPEGRepresentation(image, 0.7) writeToFile:filePath atomically:YES];&&&&&&&&NSLog([NSString stringWithFormat:@&%d&,isOK]);&&&&}&&&&else&&&&{&&&&&&&&NSLog(@&文件后缀不认识&);&&&&}}@end
Pages: 1/7
关注本帖(如果有新回复会站内信通知您)
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 关注CVP公众号
扫一扫 浏览移动版苹果5s升级了ios9后,今日头条就不能分享微信朋友圈了,一直提示没安装微信_百度知道
苹果5s升级了ios9后,今日头条就不能分享微信朋友圈了,一直提示没安装微信
我有更好的答案
升级一下今日头条的版本吧。新版本应该是可以适应系统的。
数码爱好者
我的也是,不知道怎么回事
你别得瑟不就玩具。
头条被腾讯封杀了,要是想转发公众号的话,下个腾讯的天天快报,就好了
其他1条回答
为您推荐:
其他类似问题
朋友圈的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
项目使用的是vue2来开发,求有知道的大神告知告知
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
楼主得到答案了吗,我也遇到了
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!}

我要回帖

更多关于 微信菜单栏添加图文 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信