| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 | <!DOCTYPE HTML><html>	<head>		<meta charset="utf-8"/>		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>		<meta name="HandheldFriendly" content="true"/>		<!--<meta name="MobileOptimized" content="320"/>-->		<title>Hello H5+</title>		<script type="text/javascript" src="../js/common.js"></script>		<script type="text/javascript">var auths={};function plusReady(){	// 获取登录认证通道	plus.oauth.getServices(function(services){		var content=document.getElementById('dcontent');		var info=document.getElementById("info");		var txt="登录认证通道信息:";		for(var i in services){			var service=services[i];			console.log(service.id+": "+service.authResult+", "+service.userInfo);			auths[service.id]=service;			txt += "id:"+service.id+", ";			txt += "description:"+service.description+", ";			var de=document.createElement('div');			de.setAttribute('class','button');			de.setAttribute('onclick','login(this.id)');			de.id=service.id;			de.innerText=service.description+"登录";			oauth.appendChild(de);		}		info.innerText=txt;	},function(e){		outLine("获取登录认证失败:"+e.message);	});}document.addEventListener('plusready',plusReady,false);// 登录认证function login(id){	outSet("----- 登录认证 -----");	var auth=auths[id];	if(auth){		var w=null;		if(plus.os.name=="Android"){			w=plus.nativeUI.showWaiting();		}		document.addEventListener("pause",function(){			setTimeout(function(){				w&&w.close();w=null;			},2000);		}, false );		auth.login(function(){			w&&w.close();w=null;			outLine("登录认证成功:");			outLine(JSON.stringify(auth.authResult));			userinfo(auth);		},function(e){			w&&w.close();w=null;			outLine("登录认证失败:");			outLine("["+e.code+"]:"+e.message);			plus.nativeUI.alert("详情错误信息请参考授权登录(OAuth)规范文档:http://www.html5plus.org/#specification#/specification/OAuth.html",null,"登录失败["+e.code+"]:"+e.message);		});	}else{		outLine("无效的登录认证通道!");		plus.nativeUI.alert("无效的登录认证通道!",null,"登录");	}}// 获取用户信息function userinfo(a){	outLine("----- 获取用户信息 -----");	a.getUserInfo(function(){		outLine("获取用户信息成功:");		outLine(JSON.stringify(a.userInfo));		var nickname=a.userInfo.nickname||a.userInfo.name||a.userInfo.miliaoNick;		plus.nativeUI.alert("欢迎“"+nickname+"”登录!");	},function(e){		outLine("获取用户信息失败:");		outLine("["+e.code+"]:"+e.message);		plus.nativeUI.alert("获取用户信息失败!",null,"登录");	});}// 注销登录function logoutAll(){	outSet("----- 注销登录认证 -----");	for(var i in auths){		logout(auths[i]);	}}function logout(auth){	auth.logout(function(){		outLine("注销\""+auth.description+"\"成功");	},function(e){		outLine("注销\""+auth.description+"\"失败:"+e.message);	});}		</script>		<link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8"/>		<style type="text/css">#total{	-webkit-user-select:text;	text-align:right;	padding:0 1em;	border: 0px;	border-bottom:1px solid #ECB100;	border-radius: 0;	font-size:16px;	width:30%;	outline:none;}		</style>	</head>	<body>		<br/>		<p id="info" style="padding: 0 1em;text-align:left;">登录认证通道信息:</p>		<div style="padding: 0.5em 1em;"><hr color="#EEE"/></div>		<br/>		<div id="oauth"></div>		<br/>		<div class="button button-waring" onclick="logoutAll()">注销登录</div>		<div id="outpos"/>		<div id="output">OAuth模块管理客户端的用户授权登录验证功能,允许应用访问第三方平台的资源。		</div>	</body></html>
 |