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



我使用UIwebview运行一些javascript,我想保留一个变量值之间的函数调用点击一个按钮从iOS原生。

我正在使用的

代码片段。

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

我可以通过以下方式让它递增:

  1. 创建一个简单的Webview和一个属性
  2. 为i创建int类型的属性
  3. 创建一个按钮,点击该按钮并执行以下方法

在您的例子中,增量发生在javascript代码中,但该类不知道该状态。您需要能够通过传递一些参数来创建动态Javascript。

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

    self.i=self.i+1;
}
-(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);
}

实际上你可以定义一个函数并调用它。函数的返回值在返回字符串中捕获。我添加了另一个答案,因为它不允许我在注释字段

中进行正确的代码格式化

最新更新