UIWebView 拦截来自 javascript 音频播放器的“设置电影路径:”
Posted
技术标签:
【中文标题】UIWebView 拦截来自 javascript 音频播放器的“设置电影路径:”【英文标题】:UIWebView intercept "setting movie path:" from javascript audio player 【发布时间】: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,我不知道如何获取该路径并将其指向默认值以外的位置。
【问题讨论】:
【参考方案1】:UIWebView 本质上是 WebKit 的包装器。除了现有委托方法提供的内容之外,Apple 不希望您触及任何其他内容。
话虽如此,您可以通过注入 JavaScript 来修改任何已加载文档的 DOM。这样,您还可以修改 audio.play 以不执行任何操作,而是获取 URL 以使用您可以控制的自己的播放器进行播放。
【讨论】:
谢谢,这就是我最终做的! 有没有办法在不使用 JavaScript 的情况下拦截它?实际拦截打印到控制台的内容?以上是关于UIWebView 拦截来自 javascript 音频播放器的“设置电影路径:”的主要内容,如果未能解决你的问题,请参考以下文章
swift 笔记:iOS与JavaScript的交互(一):UIWebView - 2.1直接使用字符串通过评估Java脚本(来自:)
Hybrid App: 对比UIWebView和WebKit实现JavaScript与Native交互