UIActivityViewController 調(diào)用微信分享的問題

以下程序并不是都好使,不過在我的機器上都ok,有以下的限制,希望大家都檢查一下自己的設(shè)備是否能用。另外就是分享的順序,可能會亂序,這個我一直無法解決。。。如果有人能處理了,希望也提供一下。

1.??ios8.0以上。

2. 微信版本,盡量比較新。

以上兩個功能,可以用在相冊里面選擇一個圖片,看看是否可以分享到微信,如果可以,證明系統(tǒng)跟微信版本都ok。

3. 要分享的圖片不要太大,這個問題,我遇到過,所以最后我在上傳到服務(wù)器的時候,就處理了,所以這里下載的網(wǎng)絡(luò)圖片,都是很小的,沒有進行壓縮。如果選擇本機圖片,建議進行壓縮之后,用新的壓縮過的圖片進行分享。我試驗過,一些png圖片大概3M左右就會無法彈出微信分享的情況。最后我都弄到300K之內(nèi)的jpg圖片了。。?;旧喜粫霈F(xiàn)因為圖片大導(dǎo)致的問題。。。

以上三點滿足之后,下面的代碼,在我的設(shè)備上是可以使用的。。。部分代碼因為有自己的數(shù)據(jù)結(jié)構(gòu),所以可能會導(dǎo)致迷惑,但是相信大家都能看明白個思路,主要就是添加的分享類型我試驗了好多,貌似就這個成功率最高。

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])

????????{

????????????//圖片路徑請?zhí)幚沓勺约旱?/p>

????????????UIImage * imageFromURL = [PicCache getImageFromURL:[NSString stringWithFormat:@"%@%@",“www.host.com", ”FFFF.jpg"]];

????????????[PicCache saveImage:imageFromURL withFileName:filestr ofType:@"jpg"];

????????}

????????NSURL *shareobj = [NSURL fileURLWithPath:filestr];

????????// 試驗了好多參數(shù),就這個參數(shù)部分好使了。

????????[activityItems addObject:shareobj];


????}


????NSLog(@"%@",activityItems);

????UIActivityViewController *activityView = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];

????// 這個參數(shù)貌似是ipad必須填寫??有點忘記了。

????activityView.modalInPopover = true;

????activityView.restorationIdentifier = @"activity";

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

picCache是個功能類,沒啥正經(jīng)功能。。。。就是抽象出來一些保存讀取的。。。

#import

#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(@"文件后綴不認識");

????}

}

@end?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容