- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图让玩家在游戏结束时通过短信分享他们的分数。
我已将框架导入到我的项目中。在我的 viewController.h 文件中导入。
这是我的 viewController.h 文件
#import <UIKit/UIKit.h>
#import <SpriteKit/SpriteKit.h>
#import <MessageUI/MessageUI.h>
@interface myViewController : UIViewController <MFMessageComposeViewControllerDelegate> {
}
@end
我还尝试像这样导入到 MyScene.h 中:
#import <MessageUI/MessageUI.h>
@interface MyScene : SKScene <MFMessageComposeViewControllerDelegate> {
}
当我想显示 SMS 共享时,我在我的 MyScene.m 文件中使用此代码
MFMessageComposeViewController *textComposer = [[MFMessageComposeViewController alloc] init];
[textComposer setMessageComposeDelegate:self];
if ([MFMessageComposeViewController canSendText]) {
[textComposer setRecipients:[NSArray arrayWithObject:nil]];
[textComposer setBody:@"Happy Happy Joy Joy!"];
[self presentViewController:textComposer animated:YES completion:NULL];
} else {
NSLog(@"Cant send text!");
}
但是在这条线上
[self presentViewController:textComposer animated:YES completion:NULL];
我收到“'MyScene' 的不可见@interface 声明选择器'presentViewController:animated:completion:'”错误。
过去几个小时我一直在努力搜索。试试天知道其他帖子/教程中有多少变体和示例(这很好地学习了一些与此无关的东西)。似乎没有什么工作。我开始用完头发拔掉。所以任何帮助都会很棒。我相信对于你们中的一些大师来说,这应该是在公园里散步。谢谢。
编辑:我没有使用 Storyboard,也没有使用按钮/菜单/游戏等的 View Controller ......因此我无法从 viewController 本身调用该函数。
编辑:所以我尝试了 Paulw11 在他的链接中建议的内容。现在我有以下错误。
在我的 View Controller 中
MyScene.MyViewController = self;
我收到“在‘MyScene’类型的对象上找不到属性‘MyViewController’”错误
也在 MyScene.m 中
- (void)sendToController
{
NSLog(@"ok");
// use the already-created spriteViewController
[_MyViewController sendSMS];
}
[_MyViewController 发送短信];我得到一条“'MyViewController' 的不可见@interface 声明选择器'SendSMS'”
编辑 2: *编辑 2:* 编辑 2: *编辑 2:*
我得到它来打开短信。小问题,不允许我将其关闭/取消。
这是我的发送短信代码:
-(void) sendSMS {
MFMessageComposeViewController *textComposer = [[MFMessageComposeViewController alloc] init];
[textComposer setMessageComposeDelegate:self];
if ([MFMessageComposeViewController canSendText]) {
[textComposer setRecipients:[NSArray arrayWithObject:@" "]];
NSString *body = [NSString stringWithFormat:@"Happy Day!: %i. ", _score];
[textComposer setBody:body];
UIViewController *vc = self.view.window.rootViewController;
[vc presentViewController: textComposer animated: YES completion:nil];
} else {
NSLog(@"Cant send text!");
}
}
这是我的解雇代码:
-(void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result {
UIViewController *vc = self.view.window.rootViewController;
[vc dismissViewControllerAnimated:YES completion:NULL];
}
编辑 3
以下代码在正确的时间给我 NSLog,但不会关闭窗口。
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller
didFinishWithResult:(MessageComposeResult)result
{
UIViewController *vc = self.view.window.rootViewController;
// Notifies users about errors associated with the interface
switch (result)
{
case MessageComposeResultCancelled:
NSLog(@"Result: SMS sending canceled");
break;
case MessageComposeResultSent:
NSLog(@"Result: SMS sent");
break;
case MessageComposeResultFailed:
NSLog(@"Result: SMS sending failed");
break;
default:
NSLog(@"Result: SMS not sent");
break;
}
[vc dismissViewControllerAnimated:YES completion:NULL];
}
最佳答案
如果您引用 MFMessageComposeViewController Class Reference您将看到您需要使用 presentModalViewController:animated:
以模态方式呈现它。您也有责任通过您的 delegate 将其关闭。完成后反对。
我建议你看看 Message Composer sample code有关使用 MFMessageComposeViewController
类的示例。
更新
您可以关闭传递给委托(delegate)方法的 View Controller -
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller
didFinishWithResult:(MessageComposeResult)result
{
// Notifies users about errors associated with the interface
switch (result)
{
case MessageComposeResultCancelled:
NSLog(@"Result: SMS sending canceled");
break;
case MessageComposeResultSent:
NSLog(@"Result: SMS sent");
break;
case MessageComposeResultFailed:
NSLog(@"Result: SMS sending failed");
break;
default:
NSLog(@"Result: SMS not sent");
break;
}
[controller dismissViewControllerAnimated:YES completion:NULL];
}
关于ios - skscene UIViewController 从 SKScene 发送短信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22585398/
由于某种原因,当 php mail() 发送到文本号码(通过电子邮件)时,即 123456789@vtext.com;发件人显示为 centos apache 服务器输出电子邮件 (apache@ho
我正在编写一个需要用户输入手机号码的新网站,我面临的问题是我需要确保用户实际上是(或在这种情况下,有权访问)的所有者手机号码。 我想出的解决方案是,在提交号码时,我向他们发送带有 token 的短信,
我目前正在尝试编写一个应用程序来拦截文本消息并根据该消息的内容使用react。我试图挂接到 CKSMSService 类中的 _receivedMessage:(struct __CKSMSRecor
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 4年前关闭。 Improve thi
Android/iPhone/Windows mobile/Symbian 是否有任何一种标准/广泛使用的 SMS 格式可以发送/接收 GPS 坐标(“地理标记 SMS”)? 例如Garmin 具有对
当用户的桌面应用程序上发生警报时,我想向用户的智能手机发送电子邮件或短信。 如何在不提供应用程序内登录凭据的情况下发送电子邮件? 使用 smtp,我需要提供我的凭据,但由于这是针对已发布的应用程序,这
有多久,没有发过短信了? 1、背景简介 在常规的分布式架构下,「消息中心」的服务里通常会集成「短信」的渠道,作为信息触达的重要手段,其他常用的手段还包括:「某微」、「某钉」、
我基本上是在尝试允许用户使用短信发布到他们的博客。我为每个用户存储了一个电话号码,并且由于 twilio 在他们提交给我的页面的发布请求中发送该信息,我可以进行反向查找以查看将其发布到哪个博客。现在出
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我想从 jSMPP 接收 Unicode 短信。 如果数据编码是8,我想将其转换为Unicode符号。 为此,我使用 HexUtil.convertBytesToHexString 函数。 但它没有正
我正在尝试使用 USB 调制解调器发送短信(我有一个 D-Link USB 调制解调器)。我刚找到 SmsLib,但我不知道如何使用 USB 调制解调器。我找到的例子是串行调制解调器,我没有找到任何
我想为网站管理员做一个简单的通知/新闻系统。 将这些消息(最多 250 个字符)存储在数据库中的最佳解决方案是什么? VARCHAR(255) 还是 TEXT? 谢谢 最佳答案 如果它们要短,定义一个
传入的 Type-0 SMS(请注意:“Type-0”是 ment,而不是“Class-0”)如何被 BroadcastReceiver 捕获? 背景:出于配置目的,发送 Type-0 SMS(带有
我在我的 android 应用程序中尝试了这段代码来获取 SMS 消息,但它不起作用,该应用程序没有出现在消息列表中。我应该添加一些东西来让它工作吗?
我在这里的两篇文章中找到了这段代码: String url = "content://sms/"; Uri uri = Uri.parse(url); getContentResolver().reg
有几个示例说明如何在具有高优先级的广播接收器中读取 SMS,然后调用 abortBroadcast() 以阻止 Intent 到达其他应用程序的广播接收器。但是,它们似乎都没有考虑到 Intent 数
我的 sendSms 函数有 try 和 catch block 。 Try block 是默认设备短信应用程序。 catch block 是设置为当前短信应用程序的其他短信应用程序,例如谷歌短信应用
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 7年前关闭。 Improve this qu
客户询问我们是否可以向订阅者发送免费短信。他们想知道是否有办法不向收件人收取入站短信费用? 我们与几个短信服务合作,我不认为这是一个选项。我的假设是您需要与每个运营商合作并从他们的系统发送消息才能完成
我是一名优秀的程序员,十分优秀!