iOS 呼叫系統分享 cocos creator
阿新 • • 發佈:2021-01-20
在沒有指定分享樣式的情況下,呼叫系統分享無非是最簡單快捷的實現方法,系統分享介面如下:
你可以通過以下程式碼呼叫系統分享元件:
UIActivityViewController *activity = [[UIActivityViewController alloc] initWithActivityItems:@[] applicationActivities:nil];
[self presentViewController:activity animated:YES completion:NULL];
在cocos creator 生成的ios工程中的AppController.mm中新增
+(void)createShareLink:(NSString*)url msgTxt:(NSString*)msgTxt{ dispatch_async(dispatch_get_main_queue(), ^{ // 異常的程式碼 放置如下位置 非同步新增進任務佇列,新增一個子執行緒,去重新整理UI介面。 //設定分享的內容 NSString* text =[NSString stringWithFormat:@"%@%@", msgTxt, url];; //陣列中存放分享的內容 NSArray* activityItems
[email protected][text]; UIActivityViewController *activity = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil]; [_sharedInstance.viewController presentViewController:activity animated:YES completion:nil]; }); }
上面中的程式碼如果不加dispatch_async(dispatch_get_main_queue(), ^{}
會導致UI的處理必須是單執行緒的,所以當 在一個已存在的UI上切換新的UI時,會出現Only run on the main thread 錯誤。告訴你,只能在主執行緒上執行。