iOS开发:移动端与前端交互的一些基本操作

    xiaoxiao2021-03-25  91

    一、移动端与前端的交互中,常需要获取html页面的内容、标题等信息

    1.UIWebView

    可以在UIWebViewDelegate的

    - (void)webViewDidFinishLoad:(UIWebView *)webView 方法中获取相关内容,实例代码如下

    - (void)webViewDidFinishLoad:(UIWebView *)webView { //获取所有的html NSString *htmlContent = @"document.documentElement.innerHTML"; //获取网页title NSString *htmlTitle = @"document.title"; //获取网页的一个值 NSString *htmlNumber = @"document.getElementById('title').innerText"; //获取到得网页内容 NSString *htmlContentInfo = [webView stringByEvaluatingJavaScriptFromString:htmlContent]; NSLog(@"%@",htmlContentInfo); NSString *titleHtmlInfo = [webView stringByEvaluatingJavaScriptFromString:htmlTitle]; NSLog(@"%@",titleHtmlInfo); NSString *numberHtmlInfo = [webView stringByEvaluatingJavaScriptFromString:htmlNumber]; NSLog(@"%@",numberHtmlInfo); }

    2.WKWebView

    WKWebView 有 title 属性可直接获取网页标题,

    NSString *title = webView.title;

    可通过 KVO 方式获取网页标题的动态变化。

    [webView addObserver:self forKeyPath:NSStringFromSelector(@selector(title)) options:NSKeyValueObservingOptionNew context:NULL];

    二、html页面多媒体内容的播放处理

    1.UIWebView

    [self.webView setMediaPlaybackRequiresUserAction:NO]; //允许自动播放

    1.WKWebView

    WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init]; config.allowsInlineMediaPlayback = YES; config.mediaPlaybackRequiresUserAction = false; displayWebView=[[WKWebView alloc] initWithFrame:rect configuration:config]; displayWebView.UIDelegate=self; displayWebView.navigationDelegate=self;

    UIWebView音视频的播放与暂停

    参考资料:http://www.itstrike.cn/Question/7823dee3-ccbd-4039-8f5e-f8289d43a178.html

    // [_webView stringByEvaluatingJavaScriptFromString: @"document.querySelector('audio').pause();"]; //经测试以下代码可行 [_webView stringByEvaluatingJavaScriptFromString: @"var audioPlayer = document.querySelector('audio');\ if (audioPlayer.paused) \ { \ audioPlayer.play(); \ } \ else \ { \ audioPlayer.pause(); \ } \ "];

    当然这只会停止第一个视频,等等 iPad 脚本需要稍微有点复杂和循环遍历页面上的所有视频。

    var videos = document.querySelectorAll("video");for (var i = videos.length - 1; i >= 0; i--){        videos[i].pause();};

    转载请注明原文地址: https://ju.6miu.com/read-11352.html

    最新回复(0)