通过JavaScript钩子来获取UIWebView视频播放的状态
2015-10-05 21:14
423 查看
转自:http://blog.csdn.net/chenyong05314/article/details/42120917
http://dev.classmethod.jp/client-side/javascript/uiwebview-video-tag/
如有侵犯,请来信oiken@qq.com
场景是这样的
在UIWebview里面有一个视频,点击之后会弹出全屏的系统的视频播放器,这时候你可能需要在全屏的时候,或者在用户看完视频的时候需要做一些事情。
videofullscreenhandler.js
在UIWebview的delegate里面做处理
---------------------
日本人的文章讲得清楚些:
这个是得到播放和停止的通知
http://dev.classmethod.jp/client-side/javascript/uiwebview-video-tag/
如有侵犯,请来信oiken@qq.com
场景是这样的
在UIWebview里面有一个视频,点击之后会弹出全屏的系统的视频播放器,这时候你可能需要在全屏的时候,或者在用户看完视频的时候需要做一些事情。
videofullscreenhandler.js
(function () { var scheme = 'videohandler://'; var videos = document.getElementsByTagName('video'); for (var i = 0; i < videos.length; i++) { videos[i].addEventListener('webkitbeginfullscreen', onBeginFullScreen, false); videos[i].addEventListener('webkitendfullscreen', onEndFullScreen, false); } function onBeginFullScreen() { window.location = scheme + 'video-beginfullscreen'; } function onEndFullScreen() { window.location = scheme + 'video-endfullscreen'; } })();
在UIWebview的delegate里面做处理
#pragma mark - UIWebViewDelegate - (void)webViewDidFinishLoad:(UIWebView *)webView { NSString *videoHandlerString = [[NSBundle mainBundle] myVideoFullScreenHandlerJavaScriptString]; if (videoHandlerString) { [webView stringByEvaluatingJavaScriptFromString:videoHandlerString]; } } - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { if ([request.URL.scheme isEqualToString:VideoHandlerScheme]) { NSLog(@"%@", request.URL);//在这里可以获得事件 return NO; } return YES; }
---------------------
日本人的文章讲得清楚些:
这个是得到播放和停止的通知
videoplayendhandler.js
MYWebViewController.m
这个是得到进入和退出全屏播放的通知videofullscreenhandler.js
MYWebViewController.m
注意要吧uiwebView的参数allowsInlineMediaPlayback设置为YES,才会自动播放
相关文章推荐
- java的数据类型,几个java小程序
- Android 弹出通知Toast的使用
- Android 弹出通知Toast的使用
- Android studio 更新只显示"Download”的解决办法
- The following classes could not be instantiated: - android.support.v7.internal.widget.ActionBarOverl
- Android4.0以上调用设置方法
- Android:Material Design(三) 动画
- UIWebView直接全屏播放视频链接
- Unity3D Mac 版本破解小记
- ios 解析json,xml
- iOS开发之理解iOS中的MVC设计模式
- iOS中nil NULL Nil 和NSNull区别
- iOS编程------- Block高级------>Block传值
- Android中ListView的基本使用与优化
- UI 实现多线程方式之一 NSObject
- Unity3D 个人免费版不支持Camera.OnRenderImage
- 多线程编程-NSObject、NSThread、NSOperation和NSOperationQueue、GCD
- iOS编程-------AddressBook_自定义cell 自定义单元格通讯录
- Cocos2d-x Box2D物理引擎编译设置
- Android学习笔记(十)BroadcastReceiver初体验