我正在尝试调用maincontroller.js中名为handleOpenURL的sencha touch函数 来自ios的appdelegate.m
- (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);
}
答案 0 :(得分:0)
url不是字符串。尝试在你的jsString中使用[url absoluteString]而不是url。
答案 1 :(得分:0)
我通过在sencha touch“MainController.js”中创建一个全局变量并将当前“this”分配给全局变量
来修复我面临的问题 ex: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;
}