我正在研究手机间隙iOS应用程序。我需要将didRegisterForRemoteNotificationsWithDeviceToken
中收到的APN令牌传递给我的java脚本函数。
didRegisterFoRmoteNotification
如下:
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken NS_AVAILABLE_IOS(3_0)
{
NSString* token = [[[[deviceToken description]
stringByReplacingOccurrencesOfString: @"<" withString: @""]
stringByReplacingOccurrencesOfString: @">" withString: @""]
stringByReplacingOccurrencesOfString: @" " withString: @""] ;
NSLog(@"Device_Token -----> %@\n",token);
[self.viewController.webView loadHTMLString:@"<script type=text/javascript src=js/test.js></script>" baseURL:nil];
[self.viewController.webView stringByEvaluatingJavaScriptFromString:@"myFunc('skdjch')"];
}
和javascript函数是:
function myFunc(str){
alert(str)
};
但是,myFunc
没有被调用。
如果我从其他一些java脚本文件中调用myFunc
,那么它可以正常工作并显示警报。
任何人都可以解释我的错误吗?
答案 0 :(得分:0)
嘿praneti patidar你不能像function myFunc(str){
alert(str)
};
那样调用
希望你是新手Phone gap你需要桥接(插件)将值从原生iOS传递到你的Phongap Javascript函数
你的js应该是这样的
`function onDeviceReady() {
cordova.exec(function(winParam) {
if(winParam[2]=="8.0")
{
$rootScope.ios7subheadermargin="0%"
$rootScope.infotop="-13px"
$rootScope.infoleft="13%"
}
else
{
$rootScope.ios7subheadermargin="1%"
$rootScope.infotop="-16px"
$rootScope.infoleft="15%"
}
}, function(error) {
//alert(error)
}, "Pdfconverter","get_location",["",true]);
}`
这里Pdfconverter是本机iOS类(插件),其中get_location是方法,它就是这样的
-(void)get_location:(CDVInvokedUrlCommand *)command
{
cmds = command;
NSLog(@"The string is:%@",[command.arguments objectAtIndex:0]);
CDVPluginResult *result;
NSString *str_lattitude=[NSString stringWithFormat:@"%@",kUserlattitude];
NSString *str_longitude=[NSString stringWithFormat:@"%@",kUserlongitude];
NSString *str_Osversion=[NSString stringWithFormat:@"%@",kUserVersion];
NSArray *arr_values=[[NSArray alloc]initWithObjects:str_lattitude,str_longitude,str_Osversion, nil];
result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsArray:arr_values];
[self.commandDelegate sendPluginResult:result callbackId:cmds.callbackId];
}
在上面同样的我发送我的lattitude,经度和操作系统版本作为数组,在你的情况下,你将发送设备令牌......
上面的winParam包含数组值......
希望这有助于......:)