我正在尝试从iOS的appdelegate.m调用位于maincontroller.js中的sencha触摸函数handlehandURL
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
NSString* jsString = [NSString stringWithFormat:@"handleOpenURL(\"%@\");", url];
[self.viewController.webView stringByEvaluatingJavaScriptFromString:jsString];
return [super application:application handleOpenURL:url];
}
但它被称为
MainController.js
handleOpenURL: function(url)
{
console.log(url);
}
我通过在sencha touch“ MainController.js”中创建全局变量并将当前的“ this”分配给全局变量,解决了我面临的问题
例如: var that = this;
然后从appdelegate的handleOpenURL方法访问它
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
if (!url)
return NO;
NSString* jsString1 = [NSString stringWithFormat:@
"setTimeout(function () { \n"
"that.handleOpenURL(\"%@\"); \n"
"},1000);", url.host];
[self.viewController.webView stringByEvaluatingJavaScriptFromString:jsString1];
return YES;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句