uniapp 使用web-view外接三方

来源

前阵子有个需求是需要在原有的项目上加入一个电子签名的功能,为了兼容性和复用性后面解决方法是将这个电子签名写在一个新的项目中,然后原有的项目使用web-view接入这个电子签名项目;

最近又有一个需求,是需要接入第三方的页面,也用到了web-view组件,那今天就来总结下这两个需求的共同点。

web-view

web-view 是一个 web 浏览器组件,可以用来承载网页的容器,会自动铺满整个页面(nvue 使用需要手动指定宽高)。

注意:

各小程序平台,web-view 加载的 url 需要在后台(微信公众平台)配置域名白名单,包括内部再次 iframe 内嵌的其他 url
在这里插入图片描述

代码实现

–mine.vue–

// 跳转页面
// 如果你跳转的时候需要传参而且这个参数是url地址或者是含有特殊字符,需要用encodeURIComponent()编码,否则会丢失参数
 uni.navigateTo({
          url: `../../pagesSub/mine/memberUnionPaySignUrl/memberUnionPaySignUrl?url=` + encodeURIComponent(res)
        })

–memberUnionPaySignUrl.vue–

<template>
  <view class="memberUnionPaySignUrl">
    <web-view ref="mapSelect" id="_mapView" :src="paySignUrl"></web-view>
  </view>
</template>

<script lang="ts">
import { Vue, Component, Watch } from 'vue-property-decorator'
@Component({
  name: 'memberUnionPaySignUrl',
  components: {}
})
export default class memberUnionPaySign extends Vue {
  paySignUrl: any = null;// 你要跳转的三方地址

// 在onLoad()生命周期中接受上一个页面的传参
  onLoad(options) {
    // console.log('url参数=》', decodeURIComponent(options.url))
    // 获取到url参数
    this.paySignUrl = decodeURIComponent(options.url) // 接受url地址需要解码
  }
}
</script>

<style  lang="scss" scoped>
</style>

推荐资料
https://uniapp.dcloud.net.cn/component/web-view.html#web-view
https://blog.csdn.net/qq_36611673/article/details/124974609

### 回答1: 好的,我会用中文回答你的问题。 Uniapp 中的 web-view 组件可以用来在小程序中展示网页内容。在 web-view 中播放视频时,如果不希望视频进入全屏横屏模式,可以在网页端的视频标签中加入如下属性来禁止全屏横屏模式: ``` <video playsinline webkit-playsinline> ``` 这样在 web-view 中播放的视频就不会进入全屏横屏模式了。 希望这个回答能帮到你! ### 回答2: uniappweb-view组件在播放视频时,全屏显示的方式并不是强制横屏模式。在uniapp中,web-view组件是基于WebView技术实现的,它会在应用内嵌一个浏览器窗口,使用此组件可以在页面中加载并显示指定URL的网页内容。 针对web-view组件在播放视频时全屏显示的方式,uniapp并没有提供直的横屏模式的支持。但是我们可以通过一些额的方法来实现视频的横屏全屏效果。 一种可能的解决方案是利用uniapp提供的原生插件功能。可以通过编写原生的插件代码,针对特定设备平台进行横屏模式的支持。通过调用原生插件提供的口,在视频播放时切换为横屏模式,从而实现全屏显示。 另一种可行的方法是通过使用特定的CSS样式来实现全屏显示。在视频播放时,通过添加CSS样式,将web-view组件的宽度和高度设置为100%或者屏幕尺寸的宽度和高度。这样,视频内容将会占据整个屏幕空间,实现全屏显示效果。 需要注意的是,不同设备和浏览器对于web-view组件的支持和显示效果可能会有所差异。因此,在实际开发中,需要对不同设备和平台进行兼容性测试,确保视频全屏显示的效果能够符合预期。 总结起来,uniappweb-view组件在视频全屏显示方面并不是强制横屏模式,但我们可以通过原生插件或者CSS样式的方式来实现横屏全屏效果。希望以上回答能够对你有所帮助! ### 回答3: 在UniApp中,使用web-view组件嵌入网页中的视频播放器,通常情况下点击全屏按钮会触发视频进入全屏模式,但该全屏模式并非横屏模式。 UniAppweb-view组件是基于系统的WebView实现的,而WebView在移动设备上的全屏模式表现是根据系统的设置和浏览器的支持而定的。在大多数移动浏览器中,进入全屏模式会让网页占据整个屏幕,但并不一定会自动旋转屏幕为横屏模式。 要实现web-view中的视频全屏横屏播放效果,可以考虑以下解决方案: 1. 监听web-view的全屏事件:在进入全屏时,使用uni.hideTabBar()隐藏底部的导航栏,调用uni.setScreenOrientation({orientation: 'landscape'})进行屏幕旋转为横屏模式,同时将web-view的width和height设置为100vw和100vh,使其占满整个屏幕。 2. 自定义视频播放器控件:通过uni.ui或uni.ui-palette自定义视频播放器,在全屏按钮点击时,通过uni.requestFullScreen口请求全屏模式,并手动旋转屏幕为横屏模式。 需要注意的是,以上方案仅在移动设备上生效,PC端的Web平台对于全屏模式可能有不同的实现方式。另,不同浏览器对于WebView中的全屏模式支持程度可能不同,建议在开发过程中进行测试和兼容性处理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

*neverGiveUp*

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值