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