Appcan跨域交互

来源:互联网 发布:java访问控制修饰符 编辑:程序博客网 时间:2024/06/06 12:21

案例1,sina微博登录,没有插件,因此采用web方式,我首先打开https://api.weibo.com/oauth2/authorize……,然后我想增加
一个取消按钮:

1 首先打开sina

appcan.frame.open({id:"loginsina", name:"loginsina", url:url,left:0, top: 0,change:function(index,res){}});        sinaInt = setInterval('addSinaCloser()', 500);//检测sina加载并增加按钮

2 检测sina加载并增加按钮:

function addSinaCloser(){try{if(openingSina++>=30){clearInterval(sinaInt);clearTimeout(chkSinaTo);appcan.frame.close({name:"loginsina"});Alert('操作超时,请检查网络后重试','网络错误');rm();return;}msg('加载中('+openingSina+')……');logc("Try addSinaCloser");var js='uexLog.sendLog("addSinaCloser ing ... ");if(!document.getElementById("myCloser")){var o = document.createElement("div");o.id="myCloser";\o.innerHTML = \'<div class="btns login_btn" style="background-color: #eee;"><a href="#" node-type="submit" action-type="submit" tabindex="6" class="btnP" style="background-color: transparent; background-image: none; border: 0 none; text-align: center; width: 6.5em;box-shadow:none;color:#f00" onclick="uexWindow.close(-1, 500);">取    消</a></div>\';\o.className = \'btns login_btn\';\var node=document.getElementById("outer").firstChild;\document.getElementById("outer").insertBefore(o, node);\uexWindow.evaluatePopoverScript("root","content_login","callBySinaPage();");\}'; exeFrameJs(js, 'loginsina');//appcan.frame.evaluateScript('content_login','content_login',js);}catch(e){alert("f1 e:"+e)}}

 

接着sina跳回到我的网站上的sina.php,处理成功后,回掉本地 处理函数:

<script>try{window.uexOnload = function(){//因为没有引入appcan.js,所以只能用uexWindowuexLog.sendLog("logined , log from sina.php");uexWindow.evaluatePopoverScript('', 'content_login', 'loginBack(<?php echo json_encode($data); ?>)');setTimeout('uexWindow.close(15,500);', 500);}//uexLog.sendLog("logined , log from sina.php"); ;}catch(e){alert(e)}</script>


 

 

 

0 0
原创粉丝点击