2010-11-05 74 views
4

在iOS 4中,我有一個頁面加載在UIWebView與JavaScript音頻播放器。我沒有創建這個播放器,它是由第三方擁有的,所以我無法修補它。當我點擊播放按鈕,我看到的NSLog打印類似如下:UIWebView攔截「設置影片路徑:」從JavaScript音頻播放器

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

我的問題是,什麼是得到它的電影路徑設置,如何攔截呢?音頻將繼續播放,直到我創建另一個UIWebView,或使用通過iPhone主頁按鈕雙擊可訪問的內置音頻控件,或關閉該應用程序。我無法攔截shouldStartLoadWithRequest:的路徑,javascript函數audio.play()似乎直接調用某個內置播放器。我想要控制播放音頻的位置和方式,但對於任何<audio>標記解析HTML都很困難,我無法弄清楚如何獲取該路徑並將其指向默認值以外的其他位置。

回答

1

UIWebView本質上是WebKit的包裝。蘋果公司不希望您觸及任何與現有代理方法相比更多的內容。

也就是說,您可以通過注入JavaScript來修改任何加載文檔的DOM。通過這種方式,您還可以修改audio.play以不做任何事情,而是讓您的網址與您可以控制的自己的播放器一起玩。

+0

謝謝,這就是我最終做的! – Drewsmits 2011-07-21 20:05:54

+0

有沒有一種方法可以在不使用JavaScript的情況下攔截?實際上攔截正在打印到控制檯的內容? – runmad 2014-01-20 15:20:11