Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在iphone中发送应用内短信_Iphone_Ios_Sms - Fatal编程技术网

如何在iphone中发送应用内短信

如何在iphone中发送应用内短信,iphone,ios,sms,Iphone,Ios,Sms,我正在使用messenger应用程序。 我想在我的客户端上自动发送短信作为验证码,用户可以使用该代码作为验证码。。 有谁能帮我在我的客户机上自动发送短信吗 前 若用户在那个时点击注册,他/她将自动从iphone客户端收到确认短信。 这就是我需要实施的 谢谢您无法从iOS自动发送短信,您可以向用户显示短信视图并预先填充短信正文 您将在此处找到有关如何使用MFMessageComposeViewController的更多信息: 发送应用程序内短信与应用程序内电子邮件非常相似,但有些差异。使用Mess

我正在使用messenger应用程序。 我想在我的客户端上自动发送短信作为验证码,用户可以使用该代码作为验证码。。 有谁能帮我在我的客户机上自动发送短信吗

若用户在那个时点击注册,他/她将自动从iphone客户端收到确认短信。 这就是我需要实施的


谢谢

您无法从iOS自动发送短信,您可以向用户显示短信视图并预先填充短信正文

您将在此处找到有关如何使用MFMessageComposeViewController的更多信息:


发送应用程序内短信与应用程序内电子邮件非常相似,但有些差异。使用MessageUI框架发送应用程序内短信

-(IBAction) sendInAppSMS:(id) sender
{
    MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease];
    if([MFMessageComposeViewController canSendText])
    {
        controller.body = @"Hello from Mugunth";
        controller.recipients = [NSArray arrayWithObjects:@"12345678", @"87654321", nil];
        controller.messageComposeDelegate = self;
        [self presentModalViewController:controller animated:YES];
    }
}

这是您关于编码/解码问题的扩展:

#import <Foundation/Foundation.h>


@interface Base64 : NSObject {

}

+ (void) initialize;

+ (NSString*) encode:(const uint8_t*) input length:(NSInteger) length;

+ (NSString*) encode:(NSData*) rawBytes;

+ (NSData*) decode:(const char*) string length:(NSInteger) inputLength;

+ (NSData*) decode:(NSString*) string;

@end




#import "Base64.h"


@implementation Base64

#define ArrayLength(x) (sizeof(x)/sizeof(*(x)))


static char encodingTable[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
static char decodingTable[128];

+ (void) initialize {
    if (self == [Base64 class]) {
        memset(decodingTable, 0, ArrayLength(decodingTable));
        for (NSInteger i = 0; i < ArrayLength(encodingTable); i++) {
            decodingTable[encodingTable[i]] = i;
        }
    }
}


+ (NSString*) encode:(const uint8_t*) input length:(NSInteger) length {
    NSMutableData* data = [NSMutableData dataWithLength:((length + 2) / 3) * 4];
    uint8_t* output = (uint8_t*)data.mutableBytes;

    for (NSInteger i = 0; i < length; i += 3) {
        NSInteger value = 0;
        for (NSInteger j = i; j < (i + 3); j++) {
            value <<= 8;

            if (j < length) {
                value |= (0xFF & input[j]);
            }
        }

        NSInteger index = (i / 3) * 4;
        output[index + 0] =                    encodingTable[(value >> 18) & 0x3F];
        output[index + 1] =                    encodingTable[(value >> 12) & 0x3F];
        output[index + 2] = (i + 1) < length ? encodingTable[(value >> 6)  & 0x3F] : '=';
        output[index + 3] = (i + 2) < length ? encodingTable[(value >> 0)  & 0x3F] : '=';
    }

    return [[[NSString alloc] initWithData:data
                                  encoding:NSASCIIStringEncoding] autorelease];
}


+ (NSString*) encode:(NSData*) rawBytes {
    return [self encode:(const uint8_t*) rawBytes.bytes length:rawBytes.length];
}


+ (NSData*) decode:(const char*) string length:(NSInteger) inputLength {
    if ((string == NULL) || (inputLength % 4 != 0)) {
        return nil;
    }

    while (inputLength > 0 && string[inputLength - 1] == '=') {
        inputLength--;
    }

    NSInteger outputLength = inputLength * 3 / 4;
    NSMutableData* data = [NSMutableData dataWithLength:outputLength];
    uint8_t* output = data.mutableBytes;

    NSInteger inputPoint = 0;
    NSInteger outputPoint = 0;
    while (inputPoint < inputLength) {
        char i0 = string[inputPoint++];
        char i1 = string[inputPoint++];
        char i2 = inputPoint < inputLength ? string[inputPoint++] : 'A'; /* 'A' will decode to \0 */
        char i3 = inputPoint < inputLength ? string[inputPoint++] : 'A';

        output[outputPoint++] = (decodingTable[i0] << 2) | (decodingTable[i1] >> 4);
        if (outputPoint < outputLength) {
            output[outputPoint++] = ((decodingTable[i1] & 0xf) << 4) | (decodingTable[i2] >> 2);
        }
        if (outputPoint < outputLength) {
            output[outputPoint++] = ((decodingTable[i2] & 0x3) << 6) | decodingTable[i3];
        }
    }

    return data;
}


+ (NSData*) decode:(NSString*) string {
    return [self decode:[string cStringUsingEncoding:NSASCIIStringEncoding] length:string.length];
}

@end
#导入
@Base64接口:NSObject{
}
+(作废)初始化;
+(NSString*)编码:(const uint8_t*)输入长度:(NSInteger)长度;
+(NSString*)编码:(NSData*)原始字节;
+(NSData*)解码:(const char*)字符串长度:(NSInteger)输入长度;
+(NSData*)解码:(NSString*)字符串;
@结束
#导入“Base64.h”
@实现基础64
#定义阵列长度(x)(sizeof(x)/sizeof(*(x)))
静态字符编码表[]=“ABCDEFGHIjklmnopqrstuvxyzabCDEFGHIjklmnopqrstuvxyz012456789+/”;
静态字符解码表[128];
+(无效)初始化{
if(self==[Base64类]){
memset(decodingTable,0,arraylelength(decodingTable));
对于(NSInteger i=0;i<数组长度(编码表);i++){
解码表[编码表[i]]=i;
}
}
}
+(NSString*)编码:(const uint8_t*)输入长度:(NSInteger)长度{
NSMutableData*数据=[NSMutableData数据长度:((长度+2)/3)*4];
uint8_t*输出=(uint8_t*)data.mutableBytes;
对于(NSInteger i=0;i>12)&0x3F];
输出[索引+2]=(i+1)>6)&0x3F]:'=';
输出[索引+3]=(i+2)>0)和0x3F]:'=';
}
返回[[[NSString alloc]initWithData:data
编码:NSASCIIStringEncoding]自动释放];
}
+(NSString*)编码:(NSData*)原始字节{
返回[自编码:(const uint8_t*)rawBytes.bytes长度:rawBytes.length];
}
+(NSData*)解码:(常量字符*)字符串长度:(NSInteger)输入长度{
如果((字符串==NULL)| |(inputLength%4!=0)){
返回零;
}
while(inputLength>0&&string[inputLength-1]='='=')){
输入长度--;
}
NSInteger outputLength=输入长度*3/4;
NSMutableData*data=[NSMutableData dataWithLength:outputLength];
uint8_t*输出=data.mutableBytes;
NSInteger输入点=0;
NSInteger输出点=0;
while(输入点<输入长度){
char i0=字符串[inputPoint++];
char i1=字符串[inputPoint++];
char i2=inputPoint4);
if(输出点<输出长度){
输出[outputPoint++]=((解码表[i1]&0xf)>2);
}
if(输出点<输出长度){

输出[outputPoint++]=((解码表[i2]和0x3)谢谢..我去过那里,但没有得到任何例子..我需要一个参考例子..你自动意味着它只是弹出一个安全代码进行验证..你有这样的代码吗..谢谢代码员..但它仍然不起作用..你能帮我如何编码和解码客户在注册表中输入的号码吗我想用5位数字编码手机号码,然后在按钮点击事件中用相同的数字解码。你明白了吗?看,我有一个10位数字。现在我想用任何符号生成5位数字,如(*,#)然后我还想用原来的10位数字来解码这个数字。你能帮我吗?现在你明白了吗?这与你的第一个问题和答案无关,请为此创建一个新问题。这就是StackOverflow的工作原理。你可以使用MFMessageComposeViewController和预先填充的信息,如电话号码,ms如果你愿意,你也可以发送背景短信,而不需要实际通知用户正在使用短信网络服务发送短信……但我不知道苹果是否会批准具有这种短信功能的应用……谢谢,但我已经尝试了这段代码……但它显示错误……并且不起作用……你知道如何编码和解码号码吗iPhone中的r(手机号码)参数化..你有代码吗?这不起作用..我已经为此创建了另一个文件。我正在另一个文件中执行它…你能告诉我如何访问此函数吗?我在smsmsmanager.m中创建了此函数,并在按钮单击事件的另一个文件中使用它…如[smsmanager sendInAppSMS]但它显示了错误..我需要用sendInAppSMS写什么?你只需简单地告诉我你想做什么,然后我就可以正确地回复你了抱歉回复太晚…谢谢..现在使用短信API发送ios验证号怎么样..我不知道该怎么做,你能通过代码帮我吗??
#import <Foundation/Foundation.h>


@interface Base64 : NSObject {

}

+ (void) initialize;

+ (NSString*) encode:(const uint8_t*) input length:(NSInteger) length;

+ (NSString*) encode:(NSData*) rawBytes;

+ (NSData*) decode:(const char*) string length:(NSInteger) inputLength;

+ (NSData*) decode:(NSString*) string;

@end




#import "Base64.h"


@implementation Base64

#define ArrayLength(x) (sizeof(x)/sizeof(*(x)))


static char encodingTable[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
static char decodingTable[128];

+ (void) initialize {
    if (self == [Base64 class]) {
        memset(decodingTable, 0, ArrayLength(decodingTable));
        for (NSInteger i = 0; i < ArrayLength(encodingTable); i++) {
            decodingTable[encodingTable[i]] = i;
        }
    }
}


+ (NSString*) encode:(const uint8_t*) input length:(NSInteger) length {
    NSMutableData* data = [NSMutableData dataWithLength:((length + 2) / 3) * 4];
    uint8_t* output = (uint8_t*)data.mutableBytes;

    for (NSInteger i = 0; i < length; i += 3) {
        NSInteger value = 0;
        for (NSInteger j = i; j < (i + 3); j++) {
            value <<= 8;

            if (j < length) {
                value |= (0xFF & input[j]);
            }
        }

        NSInteger index = (i / 3) * 4;
        output[index + 0] =                    encodingTable[(value >> 18) & 0x3F];
        output[index + 1] =                    encodingTable[(value >> 12) & 0x3F];
        output[index + 2] = (i + 1) < length ? encodingTable[(value >> 6)  & 0x3F] : '=';
        output[index + 3] = (i + 2) < length ? encodingTable[(value >> 0)  & 0x3F] : '=';
    }

    return [[[NSString alloc] initWithData:data
                                  encoding:NSASCIIStringEncoding] autorelease];
}


+ (NSString*) encode:(NSData*) rawBytes {
    return [self encode:(const uint8_t*) rawBytes.bytes length:rawBytes.length];
}


+ (NSData*) decode:(const char*) string length:(NSInteger) inputLength {
    if ((string == NULL) || (inputLength % 4 != 0)) {
        return nil;
    }

    while (inputLength > 0 && string[inputLength - 1] == '=') {
        inputLength--;
    }

    NSInteger outputLength = inputLength * 3 / 4;
    NSMutableData* data = [NSMutableData dataWithLength:outputLength];
    uint8_t* output = data.mutableBytes;

    NSInteger inputPoint = 0;
    NSInteger outputPoint = 0;
    while (inputPoint < inputLength) {
        char i0 = string[inputPoint++];
        char i1 = string[inputPoint++];
        char i2 = inputPoint < inputLength ? string[inputPoint++] : 'A'; /* 'A' will decode to \0 */
        char i3 = inputPoint < inputLength ? string[inputPoint++] : 'A';

        output[outputPoint++] = (decodingTable[i0] << 2) | (decodingTable[i1] >> 4);
        if (outputPoint < outputLength) {
            output[outputPoint++] = ((decodingTable[i1] & 0xf) << 4) | (decodingTable[i2] >> 2);
        }
        if (outputPoint < outputLength) {
            output[outputPoint++] = ((decodingTable[i2] & 0x3) << 6) | decodingTable[i3];
        }
    }

    return data;
}


+ (NSData*) decode:(NSString*) string {
    return [self decode:[string cStringUsingEncoding:NSASCIIStringEncoding] length:string.length];
}

@end