http://www.cocoachina.com/bbs/read.php?tid-333675.html
以下程序并不是都好使,不過(guò)在我的機(jī)器上都o(jì)k,有以下的限制,希望大家都檢查一下自己的設(shè)備是否能用。另外就是分享的順序,可能會(huì)亂序,這個(gè)我一直無(wú)法解決。。。如果有人能處理了,希望也提供一下。1. ios8.0以上。2. 微信版本,盡量比較新。以上兩個(gè)功能,可以用在相冊(cè)里面選擇一個(gè)圖片,看看是否可以分享到微信,如果可以,證明系統(tǒng)跟微信版本都o(jì)k。3. 要分享的圖片不要太大,這個(gè)問(wèn)題,我遇到過(guò),所以最后我在上傳到服務(wù)器的時(shí)候,就處理了,所以這里下載的網(wǎng)絡(luò)圖片,都是很小的,沒(méi)有進(jìn)行壓縮。如果選擇本機(jī)圖片,建議進(jìn)行壓縮之后,用新的壓縮過(guò)的圖片進(jìn)行分享。我試驗(yàn)過(guò),一些png圖片大概3M左右就會(huì)無(wú)法彈出微信分享的情況。最后我都弄到300K之內(nèi)的jpg圖片了。。。基本上不會(huì)出現(xiàn)因?yàn)閳D片大導(dǎo)致的問(wèn)題。。。以上三點(diǎn)滿(mǎn)足之后,下面的代碼,在我的設(shè)備上是可以使用的。。。部分代碼因?yàn)橛凶约旱臄?shù)據(jù)結(jié)構(gòu),所以可能會(huì)導(dǎo)致迷惑,但是相信大家都能看明白個(gè)思路,主要就是添加的分享類(lèi)型我試驗(yàn)了好多,貌似就這個(gè)成功率最高。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++) { //文件名請(qǐng)自己處理 NSString *filename = [NSString stringWithFormat:@"car/shared_%@.jpg", @"1"]; NSString *filestr = [NSString stringWithFormat:@"%@/%@", cachesDir, filename]; if(![fileManager fileExistsAtPath:filestr]) { //圖片路徑請(qǐng)?zhí)幚沓勺约旱?/span>
UIImage * imageFromURL = [PicCache getImageFromURL:[NSString stringWithFormat:@"%@%@",“www.host.com", ”FFFF.jpg"]];
[PicCache saveImage:imageFromURL withFileName:filestr ofType:@"jpg"];
}
NSURL *shareobj = [NSURL fileURLWithPath:filestr];
// 試驗(yàn)了好多參數(shù),就這個(gè)參數(shù)部分好使了。
[activityItems addObject:shareobj];
}
NSLog(@"%@",activityItems);
UIActivityViewController *activityView = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
// 這個(gè)參數(shù)貌似是ipad必須填寫(xiě)??有點(diǎn)忘記了。
activityView.modalInPopover = true;
activityView.restorationIdentifier = @"activity";
[self presentViewController:activityView animated:YES completion:nil];
picCache是個(gè)功能類(lèi),沒(méi)啥正經(jīng)功能。。。。就是抽象出來(lái)一些保存讀取的。。。
#import <Foundation/Foundation.h>
#import "PicCache.h"
@interface PicCache(){
}
@end
@implementation PicCache
+(UIImage *) getImageFromURL:(NSString *)fileURL {
NSLog(@"執(zhí)行圖片下載函數(shù)");
UIImage * result;
NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:fileURL]];
result = [UIImage imageWithData:data];
return result;
}
+(NSData *) getDataFromURL:(NSString *)fileURL {
NSLog(@"執(zhí)行圖片下載函數(shù)");
NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:fileURL]];
return data;
}
+(UIImage *) loadImage:(NSString *)fileName
{
UIImage * result = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@", fileName]];
return result;
}
+(void) saveImage:(UIImage *)image withFileName:(NSString *)imageName ofType:(NSString *)extension
{
NSString *filePath = imageName;
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(@"文件后綴不認(rèn)識(shí)");
}
}
@end
posted on 2016-04-08 10:55
聶文龍 閱讀(2657)
評(píng)論(0) 編輯 收藏 引用