zoukankan      html  css  js  c++  java
  • Windows Azure之Mobile Service

    我建个android app和Windows Azure的Mobile Service配合,以实现会员注册的功能,实际十分简单,微软家的东西真心好用

    首先新建个Mobile Service

    New->Mobile Service->Create之后弹出下图的对话框

    URL就自定义一个,如果有人注册了会报错,换个就好,database新建还是使用已存在的都可以,新建之后会多一步让你输入要新建的数据库的名称和密码,backend就选Javascript,点击箭头下一步

    使用现存的会让你输入密码,建立完成,点击主界面左侧的Mobile service,出现下图

    我这里选“连接一个已存在的android app”,其实现在下面微软的教程就放在那里了

    在自己的android app中确保build.gradle(project:你自己的工程名)里面有:

    repositories {
            jcenter()
        }

    build.gradle(project:Model:app)中添加windows azure sdk,就是把这几句添加到dependencies里去:

       compile 'com.google.code.gson:gson:2.3'
        compile 'com.google.guava:guava:18.0'
        compile 'com.microsoft.azure:azure-mobile-services-android-sdk:2.0.3'
        compile (group: 'com.microsoft.azure', name: 'azure-notifications-handler', version: '1.0.1', ext: 'jar')

    在自己的实现MobileService功能代码中添加:

    private MobileServiceClient mClient;
    private ProgressBar mprogressBar;
      try {
                mClient=new MobileServiceClient("你的URL",
                        "你的KEY",
                        this).withFilter(new ProgressFilter());
    
                mStudentTable=mClient.getTable(Student.class);
            } catch (MalformedURLException e) {
                e.printStackTrace();
    
                createAndShowDialog(new Exception("移动服务发生错误,检查URL和Key试试"), "Error");
            }
    private class ProgressFilter implements ServiceFilter {
    
            @Override
            public ListenableFuture<ServiceFilterResponse> handleRequest(
                    ServiceFilterRequest request, NextServiceFilterCallback next) {
    
                runOnUiThread(new Runnable() {
    
                    @Override
                    public void run() {
                        if (mprogressBar != null) mprogressBar.setVisibility(ProgressBar.VISIBLE);
                    }
                });
    
                SettableFuture<ServiceFilterResponse> result = SettableFuture.create();
                try {
                    ServiceFilterResponse response = next.onNext(request).get();
                    result.set(response);
                } catch (Exception exc) {
                    result.setException(exc);
                }
    
                dismissProgressBar();
                return result;
            }
        }
    private void dismissProgressBar() {
            runOnUiThread(new Runnable() {
    
                @Override
                public void run() {
                    if (mprogressBar != null) mprogressBar.setVisibility(ProgressBar.GONE);
                }
            });
        }

    上面代码中的“你的URL”和“你的KEY”替换成你自己新建的Mobile Service的URL和KEY,其实在现在向导里面有的,没有单击上面的“DASHBOARD”,你的URL和key如图

    关于KEY,点击MANAGE KEYS,等一秒,复制那个Application key。

    接下来,定义那个要传送的实体类Student

    import com.google.gson.annotations.SerializedName;
    
    import java.util.Objects;
    
    /**
     * Created by chen on 2015/9/19.
     */
    public class Student {
    
        @SerializedName("id")
        private String mID;
    
        @SerializedName("stuid")
        private String mStuID;
    
        @SerializedName("name")
        private String mName;
    
        @SerializedName("sex")
        private String mSex;
    
        @SerializedName("qq")
        private String mQQ;
    
        //Constructor
        public Student(){
    
        }
    
        public Student(String id,String stuid,String name,String sex){
            this.setID(id);
            this.setStuID(stuid);
            this.setName(name);
            this.setSex(sex);
        }
    
        public void setID(String id) {
            this.mID = id;
        }
    
        public void setName(String name) {
            this.mName=name;
        }
    
        public void setSex(String sex) {
            this.mSex = sex;
        }
    
        public void setStuID(String stuID) {
            this.mStuID = stuID;
        }
    
        public void setStuQQ(String stuQQ){this.mQQ=stuQQ;}
    
        @Override
        public String toString(){return getName();}
    
        public String getName(){return mName;}
    
        public String getID(){return mID;}
    
        public String getStuID(){return mName;}
    
        public String getSex(){return mSex;}
    }

    注意:实体类中类似@SerializedName("id")里面的“id”要和接下在azure管理中定义的Column名字一致,官方文档中说,只要一致mobile service就会自己解析json并将其对应存储到数据库中。

    下面就定义数据库,如图,在azure的管理界面上,如图点DATA,选自己的数据库,新建张表,表中的Column要和上面的实体类一致,最终的效果应该这样

    运行安卓客户端,success!

  • 相关阅读:
    翻译MDN里js的一些方法属性
    ajax相关
    我的面试错题
    写代码通用思路
    工厂模式
    cookie & session
    X-UA-Compatible设置IE浏览器兼容模式
    [转]IE6/IE7/IE8/IE9中tbody的innerHTML不能赋值的完美解决方案
    EasyUseCase 一款脑图转化 Excel 测试用例工具 (1.2 版本升级)
    XMind2TestCase:一个高效测试用例设计的解决方案!
  • 原文地址:https://www.cnblogs.com/mengnan/p/4824410.html
Copyright © 2011-2022 走看看