gpt4 book ai didi

javascript - iOS WebView Javascript

转载 作者:行者123 更新时间:2023-11-29 11:02:52 24 4
gpt4 key购买 nike

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

<a onclick="Android.setCategory('US');" class="navigator_item cat_US">US</a>

这是我唯一感兴趣的事情。例如,我只想获取“onclick”部分作为字符串。因此,每当单击该部分时,我都想将其作为字符串获取,以便之后我可以执行自己的逻辑,调用某些方法或任何东西。我尝试使用

shouldStartLoadWithRequest

但我无法在点击时注销任何内容。我在这里做错了什么吗?也许我缺乏 javascript 知识是个问题,我不了解基础知识,但我认为应该可以将那部分从 onclick 引号转换为字符串。这就是我所需要的。

我忘记了一件非常重要的事情。我不能碰那个用于 Android 的 javaScript,这就是 Android 应用程序现在的工作方式。这就是为什么我想做这个“字符串”的事情。

我可以用 stringByEvaluatingJavaScriptFromString 和 document.getElementsByClassName JavaScript 方法做些什么吗?

干杯打气:)

最佳答案

如果您可以自由更改 onclick 目标,您可以这样做:

<a onclick="setCategory('US');">US</a>

在您的网页中,然后为您的 UIWebView 执行如下操作:

[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 - iOS WebView Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15053273/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com