71 lines
1.9 KiB
Vue
71 lines
1.9 KiB
Vue
|
<template>
|
||
|
<view>
|
||
|
<web-view :webview-styles="webviewStyles" :src="webviewSrc" ref="webview" @onPostMessage="handlePostMessage"></web-view>
|
||
|
<button class="button" @click="evalJs">evalJs(改变webview背景颜色)</button>
|
||
|
</view>
|
||
|
</template>
|
||
|
|
||
|
|
||
|
<script>
|
||
|
var wv;//计划创建的webview
|
||
|
import projectConfig from '@/env.config.js';
|
||
|
export default {
|
||
|
data(){
|
||
|
return {
|
||
|
id: '',
|
||
|
info: {},
|
||
|
dp: {},
|
||
|
webviewSrc: '/pages_player/static/app-plus/video.html',
|
||
|
decoderUrl: '',
|
||
|
editInterval: null,
|
||
|
webviewStyles: {
|
||
|
progress: {
|
||
|
color: '#FF3333'
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
onLoad(option) {
|
||
|
if(option.id){ this.id = option.id }
|
||
|
},
|
||
|
onReady() {
|
||
|
// #ifdef APP-PLUS
|
||
|
var currentWebview = this.$scope.$getAppWebview() //此对象相当于html5plus里的plus.webview.currentWebview()。在uni-app里vue页面直接使用plus.webview.currentWebview()无效
|
||
|
this.decoderUrl = projectConfig.decoderUrl;
|
||
|
setTimeout(function() {
|
||
|
wv = currentWebview.children()[0]
|
||
|
wv.setStyle({top:150,height:300})
|
||
|
}, 1000); //如果是页面初始化调用时,需要延时一下
|
||
|
// #endif
|
||
|
},
|
||
|
mounted() {
|
||
|
var url = "https://live.nodemedia.cn:8443/live/b480_264.flv";
|
||
|
this.weburl+='?data='+ encodeURIComponent(JSON.stringify({ "apiUrl": url }));
|
||
|
//如果是页面初始化调用时,需要延时一下
|
||
|
this.webviewSrc = 'about:blank'; // 清空当前页面
|
||
|
this.$nextTick(() => {
|
||
|
this.webviewSrc = '/pages_player/static/app-plus/video.html?data=' +
|
||
|
encodeURIComponent(JSON.stringify({ "apiUrl": res.playurl ,"decoderUrl":this.decoderUrl})) ;
|
||
|
});
|
||
|
},
|
||
|
methods:{
|
||
|
// webview向外部发送消息
|
||
|
handlePostMessage: function(data) {
|
||
|
console.log("接收到消息:" + JSON.stringify(data.detail));
|
||
|
},
|
||
|
// 调用 webview 内部逻辑
|
||
|
evalJs: function() {
|
||
|
this.$refs.webview.evalJs("document.body.style.background ='#00FF00'");
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
</script>
|
||
|
|
||
|
<style>
|
||
|
.webview {
|
||
|
width: 100vw;
|
||
|
height: 200vh;
|
||
|
}
|
||
|
</style>
|