java filebody bitmap对象_处理 | 保利威帮助中心 - Part 5

一、简介

目前部分网页使用WebView控件来播放Polyv点播视频或直播视频时,会产生以下问题,在此提供demo供参考方便快速解决问题。

安卓webview demo描述

- demo中实现了点击全屏按钮功能(ps:demo中虽然实现了全屏,但是从竖屏切换到横屏全屏,或者从横屏切换到竖屏全屏,需要开发者自己实现)

IOS webview demo描述

- demo中分别演示使用UIWebview、WKWebview

二、FAQ

1. webview 引用直播观看页打开白屏

不可以随意劫持Polyv请求的cookie信息,可能导致播放页面无法正常跳转,出现白屏现象。

2. 播放器区域白屏

由于运营商劫持的可能性,建议引用https的页面地址解决。

3. iOS UIWebview 已废弃使用,请使用 WKWebView

视频在h5页面内播放属性是 inline playback, UIWebView 默认开,WKWebView 默认关。

UIWebView 在 iOS 11.3 上设置 inline playback 无效,iOS 11.0.3 上可以,所以不建议继续使用 UIWebView。

补充:苹果在今年(2020年)4月起已禁止提交包含 UIWebview 的新应用,12月禁止包含 UIwebview 的应用更新

4. ios配置

iOS 需要以下配置,设置 info.plist NSAppTransportSecurity 字段,允许非HTTPS连接访问。

加入 NSAllowsArbitraryLoadsInWebContent 键,允许任意web页面加载,或设置 NSAllowsArbitraryLoads 为 YES 来禁用ATS。

测试发现:使用NSAllowsArbitraryLoadsInWebContent在 iOS 10.3 上视频可能无法播放,所以建议直接关闭ATS。

默认小屏播放(WKWebView)

加载网页后网页里有播放器,但是iOS11上的播放默认是全屏播放,没有办法小屏播放,这里我们就要进行下设置了

5.Android 虚拟按键适配动态调整布局

如下图华为mate8机型为例,部分webview页面底部内容被虚拟按键遮挡问题,需要处理Android调整webview适配底部返回键等虚拟键盘。

4553505fcb6a3beed91135bc93dba4e6.png

6.Android HTTPS页面引用HTTP资源的问题

Android5.0及以上系统WebView默认不支持同时加载Https和Http混合模式,若直播观看页嵌入https页面,需要增加以下代码解决播放

此外,Android 9及以上系统默认应用禁止Http明文访问,如果需要访问Http网址或内容,请在AndroidManifest.xml的Application标签中加入 android:usesCleartextTraffic="true" 属性

7.Android 默认视频封面灰色播放按钮美化

ae205c7ca1f5a6dd8d17934d9e67121e.png

安卓webview video标签默认显示如图播放按钮背景。

7ca94835832bd429409fe4a81299f630.png

通过Web增加以下代码后美化如上图显示,除以下设置外同样也可以自定义视频封面图片:

8.Android webview观看页全屏退出后无法弹起输入框

在webview的全屏/竖屏回调中,添加mWebView.clearFocus();方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中使用`multipart/form-data`格式发送请求并设置参数,可以使用Java的第三方库,例如Apache HttpClient或OkHttp。 下面是使用Apache HttpClient库的示例代码,演示如何设置`multipart/form-data`参数: ```java import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.ContentType; import org.apache.http.entity.mime.MultipartEntityBuilder; import org.apache.http.entity.mime.content.FileBody; import org.apache.http.entity.mime.content.StringBody; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import java.io.File; import java.io.IOException; public class MultipartFormDataExample { public static void main(String[] args) { String url = "http://example.com/upload"; File file = new File("file.txt"); try (CloseableHttpClient httpClient = HttpClients.createDefault()) { HttpPost httpPost = new HttpPost(url); // 创建多部分实体构造器 MultipartEntityBuilder builder = MultipartEntityBuilder.create(); // 添加文件参数 FileBody fileBody = new FileBody(file, ContentType.DEFAULT_BINARY); builder.addPart("file", fileBody); // 添加其他参数 builder.addPart("param1", new StringBody("value1", ContentType.TEXT_PLAIN)); builder.addPart("param2", new StringBody("value2", ContentType.TEXT_PLAIN)); // 构建多部分实体 HttpEntity multipartEntity = builder.build(); // 设置请求实体 httpPost.setEntity(multipartEntity); // 发送请求并获取响应 HttpResponse response = httpClient.execute(httpPost); // 处理响应 System.out.println(response.getStatusLine()); // 其他处理逻辑... } catch (IOException e) { e.printStackTrace(); } } } ``` 上述示例中,我们使用`MultipartEntityBuilder`构建`multipart/form-data`请求体,添加文件参数和其他参数。最后,将构建的请求实体设置到`HttpPost`对象中,并发送请求。 请注意,示例中使用的是Apache HttpClient 4.x版本。如果你使用的是不同版本的HttpClient库,请根据库的文档进行相应调整。 希望对你有帮助!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值