这是我的故事板。我在cordova应用程序的侧面菜单中使用了SWRevealViewController插件。添加了"主视图控制器"作为对Last视图控制器的类引用(在nav-bar中有项目)。
在我的Cordova视图中从左向右滑动将显示Sidemenu。点击我在
中保存选定的行值 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// menuItems is an array using which I'm populating the sidemenu
NSString * str = [menuItems objectAtIndex:indexPath.row];
}
我只想将此值传递给javascript函数。
在index.html中定义了我的javascript函数
<script >
(function () {
window.execute = function () {
alert(" machi");
var el = document.getElementById('search');
var scope = angular.element(el).scope();
scope.$apply(function() {
scope.execute();
});
}
})();
</script>
calling this function using
NSString *jsCommand = [NSString stringWithFormat:@"execute()"];
[self.webView stringByEvaluatingJavaScriptFromString:jsCommand];
答案 0 :(得分:0)
尝试将您的原生代码更改为:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// menuItems is an array using which I'm populating the sidemenu
NSString * str = [menuItems objectAtIndex:indexPath.row];
NSString *jsCommand = [NSString stringWithFormat:@"execute('%@')", str];
[self.webView stringByEvaluatingJavaScriptFromString:jsCommand];
}
你的javascript函数声明:
window.execute = function (str) {...}
您会在 str 函数参数中找到传递的值。