Javascript &引用;通行证;使用objective-c的.html文件变量
我的项目中有一个.html文件,当我启动UIWebView以自动播放Youtube视频时,我会调用该文件。它看起来像这样: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>
<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();}"];
}