调用Display.getInstance().sendMessage后弹出Share Popup如何关闭?
解决关闭邮件后弹出分享弹窗的问题
方法1:替换sendMessage为原生邮件发送逻辑
Display.getInstance().sendMessage()的默认设计会在邮件操作结束后触发系统分享菜单,如果你只需要完成邮件发送操作,完全可以直接调用平台原生的邮件API,避免后续弹窗:
Android平台实现
Intent emailIntent = new Intent(Intent.ACTION_SEND); emailIntent.setType("message/rfc822"); emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{currentRow.getString(2)}); // 按需添加主题、内容、附件 emailIntent.putExtra(Intent.EXTRA_SUBJECT, "自定义邮件主题"); emailIntent.putExtra(Intent.EXTRA_TEXT, "邮件正文内容"); emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(fileName))); startActivity(Intent.createChooser(emailIntent, "选择邮件客户端"));
iOS平台实现
if ([MFMailComposeViewController canSendMail]) { MFMailComposeViewController *mailVC = [[MFMailComposeViewController alloc] init]; mailVC.mailComposeDelegate = self; [mailVC setToRecipients:@[currentRow.getString(2)]]; [mailVC setSubject:@"自定义邮件主题"]; [mailVC setMessageBody:@"邮件正文内容" isHTML:NO]; // 添加附件 NSData *fileData = [NSData dataWithContentsOfFile:fileName]; [mailVC addAttachmentData:fileData mimeType:@"application/octet-stream" fileName:fileName]; [self presentViewController:mailVC animated:YES completion:nil]; }
同时实现邮件代理方法处理关闭:
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error { [controller dismissViewControllerAnimated:YES completion:nil]; }
方法2:拦截sendMessage的后续事件(Codename One场景)
如果你的代码基于Codename One框架,可以通过ActionListener拦截后续的分享弹窗触发逻辑:
Display.getInstance().sendMessage(new String[] {currentRow.getString(2)}, fileName, new ActionListener() { @Override public void actionPerformed(ActionEvent evt) { // 消费事件,阻止后续分享弹窗触发 evt.consume(); } });
另外,若不需要附件,可直接调用不带附件参数的重载方法,也可能避免触发分享弹窗:
Display.getInstance().sendMessage(new String[] {currentRow.getString(2)}, null, m);
方法3:平台层面直接关闭分享弹窗
如果上述方法无效,可以针对平台做针对性处理:
- Android:在邮件客户端返回后,检查当前界面是否存在分享弹窗,调用
finish()或dismiss()方法关闭。 - iOS:监听界面栈变化,发现分享弹窗出现时直接调用
dismissViewControllerAnimated:completion:关闭。
内容的提问来源于stack exchange,提问作者curtjacobs1
相关产品推荐
相关产品推荐

