【问题标题】:UIWebView intercept "setting movie path:" from javascript audio playerUIWebView 拦截来自 javascript 音频播放器的“设置电影路径:”
【发布时间】:2010-11-05 15:11:37
【问题描述】:

在 iOS 4 中,我在带有 javascript 音频播放器的 UIWebView 中加载了一个页面。我没有创建这个播放器,它归第三方所有,所以我无法修改它。当我点击播放按钮时,我会看到如下 NSLog 打印输出:

setting movie path: http://data.myaudio.com/thefile.mp3

我的问题是,什么是设置它的电影路径以及如何拦截它?音频将继续播放,直到我创建另一个 UIWebView,或使用 iPhone 主页按钮双击可访问的内置音频控件,或关闭应用程序。我无法用shouldStartLoadWithRequest: 拦截路径,javascript 函数audio.play() 似乎直接调用了一些内置播放器。我想控制音频的播放位置和方式,但由于没有解析任何<audio> 标签的 HTML,我不知道如何获取该路径并将其指向默认值以外的位置。

【问题讨论】:

    标签: iphone objective-c audio uiwebview


    【解决方案1】:

    UIWebView 本质上是 WebKit 的包装器。除了现有委托方法提供的内容之外,Apple 不希望您触及任何其他内容。

    话虽如此,您可以通过注入 JavaScript 来修改任何已加载文档的 DOM。这样,您还可以修改 audio.play 以不执行任何操作,而是获取 URL 以使用您可以控制的自己的播放器进行播放。

    【讨论】:

    • 谢谢,这就是我最终做的!
    • 有没有办法在不使用 JavaScript 的情况下拦截它?实际拦截打印到控制台的内容?
    猜你喜欢
    • 2014-11-20
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-31
    • 2016-06-29
    相关资源
    最近更新 更多