Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.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锁屏上显示CFUserNotificationDisplayAlert_Iphone_Xcode_Jailbreak - Fatal编程技术网

在iPhone锁屏上显示CFUserNotificationDisplayAlert

在iPhone锁屏上显示CFUserNotificationDisplayAlert,iphone,xcode,jailbreak,Iphone,Xcode,Jailbreak,我正在创建一个应用程序,即使iPhone屏幕被锁定,也必须显示CFUserNotificationDisplayAlert,目前我正在使用此代码 CFOptionFlags responseFlags = 0; CFUserNotificationDisplayAlert(20.0, 3, NULL, NULL, NULL, CFSTR("Hello"), CFSTR("Hello World"), CFSTR("OK"), NULL, NULL, &responseFlags); 这

我正在创建一个应用程序,即使iPhone屏幕被锁定,也必须显示CFUserNotificationDisplayAlert,目前我正在使用此代码

CFOptionFlags responseFlags = 0;
CFUserNotificationDisplayAlert(20.0, 3, NULL, NULL, NULL, CFSTR("Hello"), CFSTR("Hello World"), CFSTR("OK"), NULL, NULL, &responseFlags);

这在主屏幕上非常有效,但如果屏幕被锁定,则不会弹出。还有什么我必须添加到它以使它也显示在锁屏上的吗?

CFUserNotification
在iPhone操作系统上不受支持。与iPhone相同。

您需要使用
kCFUserNotificationAlertTopMostKey

extern CFStringRef kCFUserNotificationAlertTopMostKey;
CFStringRef keys[] = {
   kCFUserNotificationAlertTopMostKey,
   kCFUserNotificationAlertHeaderKey,
   kCFUserNotificationAlertMessageKey
};
CFStringRef values[] = {
   kCFBooleanTrue,
   CFSTR("Title"),
   CFSTR("Message")
};
CFDictionaryRef dict = CFDictionaryCreate(NULL, keys, values,     
                                          sizeof(keys)/sizeof(*keys),
                                          &kCFTypeDictionaryKeyCallBacks,
                                          &kCFTypeDictionaryValueCallBacks);
SInt32 err = 0;
CFUserNotificationRef notif = CFUserNotificationCreate(NULL,
          0, kCFUserNotificationPlainAlertLevel, &err, dict);
CFRelease(dict);
...
有关iPhone操作系统的所有对话框描述码,请参阅≤ 3.1


(请注意,虽然它会显示在锁定屏幕上,但手机不会自动唤醒。)

它是受支持的,我在问题中描述了这一点,但问题是它不会出现在锁定屏幕上,但当iphone未锁定时它会出现在屏幕上。仅仅因为它工作,并不意味着它受支持。我们这些越狱的开发者使用了大量苹果不支持的API(对于某些工作定义而言)
CFUserNotification
s将不会显示在锁定屏幕上;推送通知will.MobileSubstrate有一个在运行时创建新类的示例:它甚至使用SBAlertItem:)
objc\u allocateClassPair
创建一个新类,然后使用
class\u addMethod
添加方法,然后使用
objc\u registerClassPair
,最后,您可以向类发送
alloc
,以创建一个新实例。在这之后,它就是特定于越狱的代码了。另外,在irc.saurik.com上的#iphone是获得越狱特定开发帮助的最佳地点