同洲服务器对接茁壮中间件总结文档

来源:互联网 发布:金特软件 编辑:程序博客网 时间:2024/04/29 14:00

一、           同洲服务器地址:

1.     测试服务器:http://172.30.0.55:8080/。

2.     商用服务器:http://172.30.0.50:8080/。

3.     以测试服务器为例:

同洲服务器高清路径:http://172.30.0.55:8080/iPG/T-nsp/

同洲服务器标清路径:http://172.30.0.55:8080/iPG/T-sd/

4.后台对应portal:

高清测试portal:同洲测试portal_魏搏。

高清商用portal:同洲vod测试portal。

标清测试portal:标清同洲VOD测试portal。

 

二、           对接中页面存在的一些问题:

1.     对li设置font-size:22px,ipanel由于历史原因,会在22px的基础上增加2px的大小,导致一行容不下换行显示。对接中很多问题都由此引起,一般用改小字号的方式解决。

2.     ipanel的一些标签对float属性不支持,修改库后div、li、p标签已经支持float属性。

3.     Li标签中,如果li中子标签(如div)高度大于li的高度,li高度按照子标签高度计算。具体修改方案是减小子标签的高度使其不超出li的高度;如果不允许减小高度,也可以将子标签提取出来,然后用绝对定位来调整到想要的位置。

4.     对li设置margin样式及padding样式后,如果内容文字显示不下,超出的部分IE、google等浏览器会不显示,ipanel会换行显示。此问题无法在库里修改(修改后会导致现有项目出现问题),因此尽量回避使用margin、padding属性,改用绝对定位来实现效果;或者加大标签宽度,使内容文字可以显示的下。

5.     对li设置width及padding-left属性,IE、google等浏览器li的宽度为设置的宽度width 加上 padding-left 的宽度;ipanel,li的宽度为设置的宽度。由此导致很多li的内容文字显示不下结果换行显示。解决方法,去掉padding-left属性,或者加大li的宽度。

6.     对数组的处理:var s=["a","b",];b后面有逗号ipanel会认为其后面还有数据,因此显示出来的效果是a b  undefined 。库里已经作了修改,改后不会再显示undefined了。

7.      关于eval(callbackfun),同洲common.js中用到此方法,如果callbackfun是一个函数,ipanel会把这个函数转换成string类型导致ajax不能正常回调,页面获取不到数据。修改后如果callbackfun是个函数则直接返回,不做转换。

8.         <inputtype='button' value='...'/>,此标签中如果value值超过了设置的width的宽度,ie、google等浏览器不显示超出部分,ipanel会把宽度撑大。(ps:缩小字号)

9.     设置padding:x(上),y(左右),z(下)时IE6、google、firefox:padding的y属性处理正常。ipanel的padding的y属性不起作用。库里已做修改。

10. $("btn_1").style.background="url(images/bg_play.png) center center no-repeat "

ipanel不支持复合样式动态设置,仅能显示背景图片,其后的center center no-repeat复合样式不支持。库里已做修改,可以支持了。

11. document.getElementById(“bnt1”).innerHTML=””;如果找不到bnt1这个id的元素会导致js错误,页面无法获取数据。因此要做判断处理:

if(document.getElementById(“bnt1”)){

        document.getElementById(“bnt1”).innerHTML=””;

}

这样如果找不到此id的元素就不会执行这段代码。

12. ipanel不支持document.getElementById(“bnt1”).onclick=funciont(){….}动态赋值方法,库 修改后已经支持。

13. 键值捕获时间:同洲支持window.onkeydown。ipanle不支持,只支持document.onkeydown。

14. 2D页面由潘信解决…

 

三、           对接中VOD播放出现的问题

1.     同洲使用mp.setSingleMedia(mediaStr);方法可以从断点播放。其中参数mediaStr是一个播放链接地址,其中包含有startTime参数,这个参数是断点播放的起始时间。ipanel修改后此方法也可支持断点播放了。

2.     关于播放过程中按退出键,弹出对话框后视频播放终止并黑屏的问题:

同洲弹出框的方法是location.href =””; 同洲对此解析为页面叠加的机制,不会跳转到新的页面。即播放页面不会停止播放,新的对话框页面会覆盖到此页面上。而ipanel会进行页面的跳转,即播放页面停止播放并跳转到对话框页面。因此会导致黑屏。

解决办法,在按退出键的时候做版本判断,如果是ipanel中间件的话用iPanel.overlayFrame.location.href =””;的方式跳转,如果是同洲的中间件就用本来的location.href=””;的方式跳转。具体方式如下:

添加版本判断函数:

function getBrowserVersion(){

       varversion=SysInfo.browserVersion;

       if(version=="iPanel3.0")

              return0;    //0为iPanel浏览器

       else

              return1;    //1为同洲浏览器

}

页面跳转时的判断:

if(getBrowserVersion()==0){

iPanel.overlayFrame.location.href="a_"+url;  //跳转到ipanel对话框

}else{

location.href = url;

}

关于弹出框页面:

同洲服务器vodctr文件夹中,以”a_”开头的页面是ipanle的弹出框页面。

ipanel窗体弹出时需要对窗体进行绘制,需要添加:window.moveTo(0, 0);

window.resizeTo(720, 576);(此分辨率为标清,高清为1280, 720)。

然后更改MediaPlayer对象的获取方式:var mp = iPanel.mainFrame.mp;

页面弹出对话框后会有三个按钮,分别为加入书签、直接退出、继续观看,点击这三个按钮都会关闭此弹出框,因此要在函数doConfirm(type)中把原来的跳转连接方式修改一下,并关闭此窗口,具体如下:

跳转前先调用closeVideo();来关闭视频。

将原来的location.href = returnUrl;修改为iPanel.mainFrame.location.href = returnUrl;并调用iPanel.overlayFrame.close();

最后将body标签中的onunload事件修改成:onunload="iPanel.overlayFrame.close()"

 

四、           关于portal海报、天气预报等问题:

1.     在同洲的VOD应用中,想要按红色键退到portal页,需要在portal页储存一个全局变量:Utility.setEnv("PORTAL_ADDR","ui://index.htm");

2.     ipanel中间件在向同洲传递数据的时候,会有乱码出现的情况,因此需要做编码与解码的操作来完成数据的传递。具体如下:

(1).海报添加标示符和编码:

需要在openADPage(__num)函数中添加(具体添加位置见portal):

svalue ="00000"+encodeURI(svalue);

Utility.setEnv("portal_adsFlag",svalue);

其中”00000”为标示符,传值后同洲应用会判断此参数,如果开头含有5个0则会进行解码操作。全局变量portal_adsFlag为同洲应用的连接。

(2).天气预报添加标示符和编码的函数:

单独写一个函数来处理:

function openPage(url){

if(url.indexOf(tongzhouUrl) != -1){

       checkCity();

       varweatherstr = (weather[mycity].weather).replace("℃","");

       Utility.setEnv("picSrc",weather[mycity].weatherImg);     

       Utility.setEnv("weatherInfo","00000"+encodeURI(weatherstr));

}

}

在portal中引入

<script type="text/JavaScript"src="http://172.16.19.235/weather/weather.js"></script>后就可以使用checkCity();来获取天气参数。

var weatherstr =(weather[mycity].weather).replace("℃",""); 这行代码是获天气值,并且去掉℃符号(同洲天气预报风格不含℃,而且如果带有℃符号会导致排版问题)。

最后两行代码是保存天气图片路径和天气值的全局变量,并进行标示和编码。图片路径的传递不会导致乱码,因此没有进行编码。

最后就是在跳转应用的地方(doSelect函数)调用这个函数。把要跳转的连接带入到openPage(url)函数中,函数会判断是不是要跳转到同洲的服务器:if(url.indexOf(tongzhouUrl) != -1)。其中tongzhouUrl为portal中定义的变量:vartongzhouUrl="http://172.30.0.50:8080";

如果是同洲服务器就进行编码操作,否则跳过。

 

0 0
原创粉丝点击