Ios 为什么IONIC/Cordova SMS插件第一次加载需要时间?
我安装了从爱奥尼亚应用发送短信。以下是我的实施:Ios 为什么IONIC/Cordova SMS插件第一次加载需要时间?,ios,cordova,ionic-framework,Ios,Cordova,Ionic Framework,我安装了从爱奥尼亚应用发送短信。以下是我的实施: sendSMS(phoneNumber: string, text: string, event) { this.sms.send(String(phoneNumber), text).then(result => { console.log(result); }).catch(error => { console.log(error); }); } 我正在iOS物理设备上测试
sendSMS(phoneNumber: string, text: string, event) {
this.sms.send(String(phoneNumber), text).then(result => {
console.log(result);
}).catch(error => {
console.log(error);
});
}
我正在iOS物理设备上测试这个。当我在新安装后第一次点击按钮发送短信时,加载需要30秒,但在那之后,它会立即发生。即使在关闭应用程序并重新启动手机之后。我查看了日志,发现:
文件:xxxx/ios/cordova ios plugins/sources/cordovasmplugin/Sms.m:
运行时:从后台线程调用UI API:-[UIViewController
必须仅从主线程使用init]
Angular version 11,IONIC version 5.31.1,SMS IONIC native/SMS“^5.31.1”,“cordova SMS插件“^1.0.0”文本生成器需要从主线程运行。为此,请使用异步调度包装生成器的启动 文件:src/ios/Sms.m 查看此处了解更多信息:
dispatch_async(dispatch_get_main_queue(), ^{
MFMessageComposeViewController *composeViewController = [[MFMessageComposeViewController alloc] init];
composeViewController.messageComposeDelegate = self;
NSString* body = [command.arguments objectAtIndex:1];
if (body != nil) {
BOOL replaceLineBreaks = [[command.arguments objectAtIndex:3] boolValue];
if (replaceLineBreaks) {
body = [body stringByReplacingOccurrencesOfString: @"\\n" withString: @"\n"];
}
[composeViewController setBody:body];
}
NSMutableArray* recipients = [command.arguments objectAtIndex:0];
if (recipients != nil) {
if ([recipients.firstObject isEqual: @""]) {
[recipients replaceObjectAtIndex:0 withObject:@"?"];
}
[composeViewController setRecipients:recipients];
}
[self.viewController presentViewController:composeViewController animated:YES completion:nil];
});