2013-01-07 56 views
0

我正在使用UIwebview来运行一些JavaScript,我想保留一个变量值之间的函数调用单击按钮从iOS本机。UIWebView Javascript保留函数调用之间的变量值

代码剪断了我正在使用的代码。

var MyApp_SearchResultCount = 0; 
var currSelected = 0; 
var prevSelected = 0; 

function jump(howHigh){ 

    //this.prevVal = this.currentVal; 
    //this.currentVal = this.currentVal + 1; 

    //************** STARTS ****************// 

    //alert(window.currSelected); 

    //************** ENDS *****************// 


    prevSelected = currSelected; 
    currSelected = currSelected + howHigh; 
    alert("currSelected" + currSelected); 
    } 

currSelected始终保持为1,与跳转方法的调用次数无关。

请帮 感谢 djrecker

回答

0

我能得到它递增执行以下操作:

  1. 创建一个简单的web视图和属性,这
  2. int类型创建一个属性
  3. 创建一个点击按钮并执行以下方法的按钮

在你的情况下,增量是在javascript代码中发生的,但是这个状态对于这个类是不知道的。您需要通过传递一些参数来创建动态JavaScript。

-(IBAction)runJS{ 
    NSString *javaScript = [NSString stringWithFormat:@"alert(%d)",self.i]; 

    NSString *string = [wv stringByEvaluatingJavaScriptFromString:javaScript]; 


    self.i=self.i+1; 
} 
+0

完善这项工作,非常感谢 – Max

+0

嘿Srikanth如果我想从JavaScript传递一些价值本土后面的代码格式化... ...任何想法请帮助。谢谢djrecker – Max

+0

NSString * string = [wv stringByEvaluatingJavaScript ...]正是如此。您可以发回一个字符串,然后相应地使用它。 – Srikanth

0
-(IBAction)runJS{ 
    NSString *javaScript = [NSString stringWithFormat:@"function abcd(){var x=%i; return x;} abcd();",self.i]; 

    NSString *string = [wv stringByEvaluatingJavaScriptFromString:javaScript]; 


    self.i=self.i+1; 

    NSLog(@"The returned value is %@",string); 
} 

可以INFACT定义一个函数,并调用它或什么都。函数的返回值被捕获在返回字符串中。我添加了另一个答案,因为它不允许我在评论字段

相关问题