日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

关于APIcloud中的登录与注册的简单实现

發布時間:2023/12/13 综合教程 31 生活家
生活随笔 收集整理的這篇文章主要介紹了 关于APIcloud中的登录与注册的简单实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、apiclou實現頁面的登錄方式,不適用自帶的登錄。

html代碼

<div class="login_ipt_box">
                    <img class="login_pic_ipt" src="../../image/userName.png" />
                    <input class="ipt_login" name="userName" value="" id="userName"
                    placeholder="請輸入賬戶名"/>
                </div>
                <div class="login_ipt_box">
                    <img class="login_pic_ipt" src="../../image/password.png" />
                    <input class="ipt_login" name="userPassword" type="password" value="" placeholder="請輸入密碼" id="password"/>
                </div>
                <input type="button" class="btn_login" onclick="loginIn()" value="登錄" />

js方面

function loginIn(){
        var userName = $api.val($api.byId('userName')),
                password = $api.val($api.byId('password'));
        if (!$api.trim(userName)) {
            api.toast({
          msg: '請輸入賬號',
          duration: 1000,
          location: 'middle'
      });
      return;
    }
        if (!$api.trim(password)) {
            api.toast({
          msg: '請輸入密碼',
          duration: 1000,
          location: 'middle'
      });
      return;
    }

        /*** 加載動畫 ***/
        api.showProgress({
            title : ' ',
            text : '玩命加載中...',
            modal : true
        });

        api.ajax({
                url: 'https://api.yazhuaa/?serAdmin.Login&username='+ userName +'&password='+ password,
                timeout: 10,
                dataType: 'json',
                method: 'post'
        }, function(ret, err) {
            api.hideProgress();
            if(ret.data.result == false){
                api.toast({
                  msg: '登錄失敗',
                  duration: 1000,
                  location: 'middle'
             });
          }else{
                    if (ret.data.result.user_name) $api.setStorage('userName', ret.data.result.user_name);
                    if (ret.data.result.id) $api.setStorage('id', ret.data.result.id);
                    if (ret.data.result.member_id) $api.setStorage('member_id', ret.data.result.member_id);
                    if (ret.data.sessionid) $api.setStorage('PHPSESSID', ret.data.sessionid);

                    api.toast({
                  msg:'登錄成功',
                  duration: '1200',
                  localtion: 'middle'
                });
                    $api.setStorage('isLogin', true);
                    // api.sendEvent({
                    //     name: 'UserHasLogin'
                    // });
                    setTimeout(function() {
                        api.openWin({
                        name: 'index',
                        url: '../../index.html',
                        bounces: false,
                        animation:{
                            type: "push",
                            duration:300
                        }
                    });
                    }, 1000);
            }
            /*** 登錄異常 ***/
            if (err) {
                api.toast({
                msg:'網絡異常,請稍后重試',
                duration: '1300',
                localtion: 'middle'
             });
                return;
            }

        });
    }

2、廣播事件的傳播,有時候登錄不止登錄就結束了,登錄之后還有一些相應的改變,例如顯示什么隱藏什么這些的。

在登錄界面登錄成功后,廣播登錄成功事件并設置登錄狀態。登錄成功后需要執行相關命令的界面(如移除登錄相關按鈕、顯示登錄用戶可見內容、獲取當前登錄用戶資料)需設置登錄監聽,以便登錄成功后作出反饋。

//登錄界面
//api.sendEvent廣播登錄成功事件
api.sendEvent({
   name: 'loginSuccess'
});
//api.setPrefs設置登錄成功狀態
api.setPrefs({
    key: 'loginStatus',
    value: 'loginSuccess'
});
//修改界面
//api.addEventListener監聽登錄成功事件(需執行才可生效)
api.addEventListener({
    name: 'loginSuccess'
}, function(ret, err){
    if( ret ){
        //執行登錄成功相關指令
    }
});

判斷登錄狀態

判斷登錄狀態可用于決定是否打開登錄界面。

//api.getPrefs獲取當前登錄狀態
api.getPrefs({
  key: 'loginStatus'
}, function(ret, err) {
    //當偏好設置尚未設置或者曾設置后被移除后,返回值(ret.value)均為空。
    var val = ret.value;
    if (val && val != "") {
            //已登錄
    } else {
        //未登錄
    }
});

登出

在登出界面登出成功后,廣播登出成功事件并移除登錄狀態。登出成功后需要執行相關命令的界面(如顯示登錄相關按鈕、移除登錄用戶可見內容、清空登出用戶數據及緩存)需設置登出監聽,以便登出成功后作出反饋。

//登出界面
//api.sendEvent廣播登出成功事件
api.sendEvent({
    name: 'logoutSuccess'
});
//api.removePrefs移除登錄狀態
api.removePrefs({
    key: 'loginStatus'
});
//修改界面
//api.addEventListener監聽登出成功事件(需執行才可生效)
api.addEventListener({
    name: 'logoutSuccess'
}, function(ret, err){
    if( ret ){
        //執行登出成功相關指令
    }
});

目前一般app的邏輯為,手機號加驗證碼登錄或者微信登錄,這種情況下狀態就比較麻煩。注意不要用 storage 判斷是否登錄或者登錄之后干什么。因為登錄是在特定的頁面所需要登錄的,這樣以前的頁面是不刷新的,狀態無法改變。所以:addEventListener 和getPrefs 同時使用這兩個以確保一定正確。 同時,退出的時候也要將這兩個時間分發出去,并且監聽推出事件以改變某些狀態.蘋果審核的時候 如果沒有安裝微信,就要判斷吧微信登錄去掉要不然不會通過

總結

以上是生活随笔為你收集整理的关于APIcloud中的登录与注册的简单实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。