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