Javascript &引用;通行证;使用objective-c的.html文件变量

Javascript &引用;通行证;使用objective-c的.html文件变量,javascript,html,objective-c,video,youtube,Javascript,Html,Objective C,Video,Youtube,我的项目中有一个.html文件,当我启动UIWebView以自动播放Youtube视频时,我会调用该文件。它看起来像这样: <html> <head> <script src="https://www.youtube.com/player_api"></script> <style> body, div { margin: 0px; padding: 0px

我的项目中有一个.html文件,当我启动UIWebView以自动播放Youtube视频时,我会调用该文件。它看起来像这样:

<html>
<head>
    <script src="https://www.youtube.com/player_api"></script>
    <style>
        body, div {
            margin: 0px;
            padding: 0px;
        }
        </style>
</head>
<body>
    <div id="media_area"></div>
</body>
<script>
    var ytPlayer = null;

    function onYouTubePlayerAPIReady() {
        ytPlayer = new YT.Player('media_area', {height: '200', width: '320', videoId: '9bZkp7q19f0',
                                 playerVars: {'playsinline': 1},
                                 events: {'onReady': onPlayerReady}
                                 });
    }

    function onPlayerReady(e) {
        e.target.playVideo();
    }

    </script>
</html>
或者有更好的方法


谢谢

是的,您可以通过JavaScript函数执行此操作,然后使用
UIWebView
调用此函数。大概是这样的:

function javaScriptFunction {//Here you can access the html DOM and pass it the URL }
然后在您的目标c代码中,您可以使用
UIWebView
methode调用它:

- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script

您可以使用@samir建议的相同技术在页面加载后操纵javascript,并将其放入webview代理的方法中

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    [webView stringByEvaluatingJavaScriptFromString:@"var ytPlayer = null;function onYouTubePlayerAPIReady() {ytPlayer = new YT.Player('media_area', {height: '200', width: '320', videoId: '9bZkp7q19f0',playerVars: {'playsinline': 1},events: {'onReady': onPlayerReady}});}function onPlayerReady(e) {e.target.playVideo();}"];
}
我不确定像那样的javascript是否能像建议的那样工作(我只是盲目地复制了它),但这是一种通过webview实现所需功能的方法

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    [webView stringByEvaluatingJavaScriptFromString:@"var ytPlayer = null;function onYouTubePlayerAPIReady() {ytPlayer = new YT.Player('media_area', {height: '200', width: '320', videoId: '9bZkp7q19f0',playerVars: {'playsinline': 1},events: {'onReady': onPlayerReady}});}function onPlayerReady(e) {e.target.playVideo();}"];
}