UIWebView Javascript在函数调用之间保留变量值

UIWebView Javascript在函数调用之间保留变量值,javascript,ios,uiwebview,Javascript,Ios,Uiwebview,我正在使用UIwebview运行一些javascript,我希望在从iOS native单击按钮的函数调用之间保留一个变量值 我正在使用的代码被截取 var MyApp_SearchResultCount = 0; var currSelected = 0; var prevSelected = 0; function jump(howHigh){ //this.prevVal = this.currentVal; //this.currentVal = this.cur

我正在使用UIwebview运行一些javascript,我希望在从iOS native单击按钮的函数调用之间保留一个变量值

我正在使用的代码被截取

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

我可以通过以下操作使其增量:

  • 创建一个简单的Webview及其属性
  • 为int类型的i创建属性
  • 创建一个被单击的按钮并执行以下方法
  • 在您的例子中,增量发生在javascript代码中,但该类不知道该状态。您需要能够通过传递一些参数来创建动态Javascript

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

    实际上,您可以定义一个函数并调用它,或者做任何事情。函数的返回值在返回字符串中捕获。我添加了另一个答案,因为它不允许我对注释字段中的代码进行正确的格式设置

    Hey Srikanth如果我想将一些值从javascript传递回本机,该怎么办?…有什么想法请帮助。感谢djreckerNSString*string=[wv stringByEvaluatingJavaScript…]正是这样做的。您可以发回一个字符串,然后相应地使用它。如果我想返回一个int值,该怎么办。。?任何建议,请建议。我认为您必须键入cast返回值。[string intValue]等。
    -(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);
    }