案例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,所以只能用uexWindow
uexLog.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>