【问题标题】:Getting Objective-C to talk to JavaScript with UIWebView使用 UIWebView 让 Objective-C 与 JavaScript 对话
【发布时间】:2010-09-17 19:08:22
【问题描述】:

我正在构建一个在 UIWebView 中加载本地 html 文件的 iPad 应用程序。我有一个 int 存储在视图控制器中,我想用它来确定要加载到 html 文档中的内容。

此外,我希望在 html 中创建可点击的链接,以在最高层生成新的、较小的 UIWebView,例如“弹出窗口”。

如何从 Obj-C 到 Javascript 来回发送数据?

【问题讨论】:

    标签: cocoa-touch ipad uiwebview ios


    【解决方案1】:

    您可以使用UIWebView 中的stringByEvaluatingJavaScriptFromString: 方法将数据从Cocoa 层发送到JavaScript 层。

    Cocoa 层还可以通过在视图控制器中实现UIWebViewDelegate 协议来“拦截”链接点击;单击链接时,将调用委托方法webView:shouldStartLoadWithRequest:navigationType:,此时 Cocoa 层可以执行您正在寻找的那种“弹出”操作。

    (虽然我会问你为什么你要生成这样的弹出窗口。我的直觉告诉我,从用户的角度来看,这看起来和感觉都很烦人。)

    【讨论】:

    • 也许弹出窗口是一个糟糕的词选择。我希望用户能够单击某些单词,在顶部打开一个小视图,其中将提供有关所选单词的更多信息。 (图像、定义等)
    • @Chris 我给你的答案也适用于这种情况。关键是要知道用户何时点击了链接,然后采取行动。
    • 会的。非常感谢您的回答。我的一个担心是,每当用户单击任何链接时都会调用委托方法,但不会检索有关单击的链接的任何信息(地址、文本等),因此如果我有多个链接将无济于事同一个文档,每个文档应该呈现不同的内容。
    • @Chris 你错了。如果您仔细查看该方法,您会发现其中一个参数是 NSURLRequest 对象,其中包含有关被点击链接的信息。
    • 先生,您是我的英雄,我觉得自己很笨。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-19
    • 2011-02-21
    • 1970-01-01
    • 2016-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多