Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS网络视图Javascript_Javascript_Html_Ios_Objective C_Xcode - Fatal编程技术网

iOS网络视图Javascript

iOS网络视图Javascript,javascript,html,ios,objective-c,xcode,Javascript,Html,Ios,Objective C,Xcode,好的,我正在为iPhone制作应用程序(仍在学习,了解Objective-C和Xcode),而且进展得很顺利。我正在制作的应用程序已经是为Android开发的。有一部分应用程序正在打开Android的“硬编码”网页,这就是我遇到问题的部分。该网页上的JavaScript部分代码如下所示: <a onclick="Android.setCategory('US');" class="navigator_item cat_US">US</a> 但我无法在单击时注销任何内容。

好的,我正在为iPhone制作应用程序(仍在学习,了解Objective-C和Xcode),而且进展得很顺利。我正在制作的应用程序已经是为Android开发的。有一部分应用程序正在打开Android的“硬编码”网页,这就是我遇到问题的部分。该网页上的JavaScript部分代码如下所示:

<a onclick="Android.setCategory('US');" class="navigator_item cat_US">US</a>
但我无法在单击时注销任何内容。我做错什么了吗?也许我缺乏javascript知识是个问题,我不懂基本知识,但我认为应该可以将这部分从onclick引号转换为字符串。这就是我所需要的

我忘了一件非常重要的事。我不能碰那个用于Android的javaScript,这就是Android应用程序目前的工作方式。这就是我想做这个“字符串”的原因。

我能用stringByEvaluatingJavaScriptFromString和document.getElementsByClassName JavaScript方法做些什么吗


干杯peps:)

如果您有权在单击目标时更改
,您可以执行以下操作:

<a onclick="setCategory('US');">US</a>
[uiWebView stringByEvaluatingJavaScriptFromString:  @"function setCategory(category) {alert("Category is " + category);};"];
如果您有iOS逻辑,您希望在设置类别时执行,那么我使用的技术是自定义URL方案。例如,setCategory可能是:

setcategory://US/
您可以将JavaScript更改为

[uiWebView stringByEvaluatingJavaScriptFromString:  @"function setCategory(category) {window.location = 'setcategory://'+category+'/';};"];
然后在您的
shouldStartLoadWithRequest
方法中:

  NSString* scheme = [[request URL]scheme];
  NSString* host   = [[request URL]host]; // "host" is actually the category

  if ([scheme isEqualToString:@"setcategory"]) {
    // Do so logic to set the category
  }

我真的很抱歉,当我在考虑如何解释我需要什么的时候,我忘了提到主要的问题。。。我不能碰那个javaScript。它现在正在和Android一起工作,这是主要的问题。。。这就是为什么我想把onclick“content”转换成字符串。只是为了让我能区分点击。这就是我想要检查单击内容的方式。可以使用Javascript的arguments.callee.name属性使用一些技巧来获取所用函数的名称,但如果无法触摸Javascript,则这对您没有好处。听起来你要做的是解析你在UIWebView中加载的页面的DOM并覆盖JavaScript,onclick将尝试运行JavaScript,你不能截取它然后决定做其他事情,你必须在你的应用程序中提供可运行的JavaScript。有一个更简单的方法。使用
stringByEvaluatingJavaScriptFromString:
让WebView创建一个名为
Android
的Javascript对象,并使用适当的值:
window.Android={setCategory:function(){…},…}@Daskwuff,你有没有办法给我写一个简单的工作示例?我真的不知道怎么写下来。
  NSString* scheme = [[request URL]scheme];
  NSString* host   = [[request URL]host]; // "host" is actually the category

  if ([scheme isEqualToString:@"setcategory"]) {
    // Do so logic to set the category
  }