案例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>


 

 

 

posted on 2015-06-14 13:05  老游条  阅读(314)  评论(0编辑  收藏  举报