Titanium 使用 NSNotificationCenter 使用 Hyperloop
Titanium use NSNotificationCenter using Hyperloop
我正尝试在我的 Titanium 应用程序中使用 hyperloop 监控 UIScreenCapturedDidChangeNotification
屏幕录制状态。我已经尝试了一段时间,但找不到任何在 hyperloop 中使用 NotificationCenter 或 addObserver 的示例。基本上,我试图将以下本机代码带入 hyperloop 中,但没有成功:
if (@available(iOS 11.0, *)) {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleScreenCaptureChange)
name:UIScreenCapturedDidChangeNotification object:nil];
}
我的尝试无效:
//Add event listener to monitor screen recording.
var NotificationCenter = require('Foundation/NSNotificationCenter');
var UIScreenMonitor = Hyperloop.defineClass('UIScreenMonitor', 'NSObject');
UIScreenMonitor.addMethod({
selector : 'handleScreenRecording',
instance : true,
arguments : ['NSNotification'],
callback : function(screen) {
alert('Screen recording changed: '+UIScreen.mainScreen.isCaptured());
console.log('Screen recording changed: ',UIScreen.mainScreen.isCaptured(),screen.isCaptured());
}
});
var screenMonitor = UIScreenMonitor();
NotificationCenter.defaultCenter.addObserverSelectorNameObject(screenMonitor,'handleScreenRecording',UIScreen.UIScreenCapturedDidChangeNotification,null);
尝试改变一些东西:-
- 您
UIScreenMonitor.addMethod
中的选择器名称需要一个冒号,例如。 'handleScreenRecording:'
- 同样在您的“
addObserverSelectorNameObject
”函数调用中,选择器需要一个冒号,例如。 'handleScreenRecording:'
- 实例化
UIScreenMonitor
class. 的新实例时添加 'new'
关键字
如果不是,screenMonitor
也需要在您需要的时间内持续存在(即不是本地变量)。
希望这有效。
我正尝试在我的 Titanium 应用程序中使用 hyperloop 监控 UIScreenCapturedDidChangeNotification
屏幕录制状态。我已经尝试了一段时间,但找不到任何在 hyperloop 中使用 NotificationCenter 或 addObserver 的示例。基本上,我试图将以下本机代码带入 hyperloop 中,但没有成功:
if (@available(iOS 11.0, *)) {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleScreenCaptureChange)
name:UIScreenCapturedDidChangeNotification object:nil];
}
我的尝试无效:
//Add event listener to monitor screen recording.
var NotificationCenter = require('Foundation/NSNotificationCenter');
var UIScreenMonitor = Hyperloop.defineClass('UIScreenMonitor', 'NSObject');
UIScreenMonitor.addMethod({
selector : 'handleScreenRecording',
instance : true,
arguments : ['NSNotification'],
callback : function(screen) {
alert('Screen recording changed: '+UIScreen.mainScreen.isCaptured());
console.log('Screen recording changed: ',UIScreen.mainScreen.isCaptured(),screen.isCaptured());
}
});
var screenMonitor = UIScreenMonitor();
NotificationCenter.defaultCenter.addObserverSelectorNameObject(screenMonitor,'handleScreenRecording',UIScreen.UIScreenCapturedDidChangeNotification,null);
尝试改变一些东西:-
- 您
UIScreenMonitor.addMethod
中的选择器名称需要一个冒号,例如。'handleScreenRecording:'
- 同样在您的“
addObserverSelectorNameObject
”函数调用中,选择器需要一个冒号,例如。'handleScreenRecording:'
- 实例化
UIScreenMonitor
class. 的新实例时添加 screenMonitor
也需要在您需要的时间内持续存在(即不是本地变量)。
'new'
关键字
如果不是,希望这有效。