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

一、移动端与前端的交互中,常需要获取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();
};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值