SmobilerApp开发笔记

1.环境搭建https://www.smobiler.com/guide/devenv.aspx

2.在Windows上为Smobiler服务器端口添加防火墙出入口规则

3.音频播放

this.Client.PlayAudio("开始.wav", AppDomain.CurrentDomain.BaseDirectory);

音频的路径在\Source\bin\Debug

4.在MessageBox.Show()中添加方法

 MessageBox.Show("成功", MessageBoxButtons.OK, (object sender1, MessageBoxHandlerArgs args) =>
            {
                if (args.Result == ShowResult.OK)
                {
                    int x = 5;
                    int a = x++ + ++x;
                    MessageBox.Show(a.ToString());
                    this.Client.PlayAudio("开始.wav", AppDomain.CurrentDomain.BaseDirectory);
                }
            });

5.在页面中,模板控件中刷新数据的方法
页面中:

KehuDindanAddForm rf = new KehuDindanAddForm();
   Show(rf, true,(MobileForm sender1, object args) =>
   {
       if (rf.ShowResult == ShowResult.Yes)
       {
         Bind();
       }
   });

模板中:

ChukuPlanEditForm boDetail = new ChukuPlanEditForm() { order_no = lbl_order_no.BindDataValue.ToString() };
   Form.Show(boDetail, true, (MobileForm sender1, object args) =>
   {
      if (boDetail.ShowResult == ShowResult.Yes)
      {
          ((ChukuPlanForm)Form).Bind();
        }
   });

ShowResult = ShowResult.Yes;
Toast("添加成功");
Close();

6.在服务端可以使用 this.Client.Session 用于保存单个Client中的全局变量,在客户端可以在窗体中使用LoadClientData和ReadClientData来保存数据

 //记住用户名
 LoadClientData(MobileServer.ServerID + "user", user_name);

 //记住密码
 LoadClientData(MobileServer.ServerID + "pwd", user_pwd);

//读取用户名
ReadClientData(MobileServer.ServerID + "user", (object sender1, ClientDataResultHandlerArgs e1) =>
{
     if (String.IsNullOrEmpty(e1.error))
     {
          txtname.Text = e1.Value;
     }
});
//读取密码
ReadClientData(MobileServer.ServerID + "pwd", (object sender1, ClientDataResultHandlerArgs e1) =>
 {
      if (String.IsNullOrEmpty(e1.error))
      {
           txtpwd.Text = e1.Value;
           if (txtpwd.Text.Length > 0)
           {
                 checkRemb.Checked = true;
            }
        }
  });

//删除客户端数据
RemoveClientData(MobileServer.ServerID + "pwd", (object s, ClientDataResultHandlerArgs args) => txtpwd.Text = "");

//写缓存数据

Client.Session["name"] = "缓存数据";

//读缓存数据窗体中和模板中

Session["name"]

Client.Session["name"]

7.Apk为了区分唯一设备,需要用到一个device id

this.Client.DeviceID

每个手机设备的DeviceID都是唯一的,在每次登录时,保存当前设备号,并与上次登录的设备号进行比较;如果不同,可以通过代码ClientVariables.GetCurrentClient(上一个设备的DeviceID).ReStart()关闭上一个会话。

8.跳转网页

在窗体中用  RedirectUrl("https://www.baidu.com/");

在模板控件中用 this.Form.RedirectUrl("https://www.baidu.com/");

9.获取控件绑定的值(由于控件绑定的值和展示的值不一样),用如下方法获取绑定的值

string bdvalue = kj_name.BindDataValue.ToString();

10.获取客户端粘贴板内容

this.Client.GetClipboard

https://www.smobiler.com/Help/html/M_Smobiler_Core_ClientVariables_GetClipboard.htm

11.SwipeView控件,侧滑控件

侧滑控件介绍

基本的官网已经介绍了,以下是细节操作代码:

列表的模板控件中需要定义一个变量,用来获取操作当前项的依据,这里根据编号

/// <summary>
/// 编号
/// </summary>
internal string IID
{
    get
     {
          return this.lbl_id.BindDataValue.ToString();
     }
 }

在swipeView右侧滑模板的点击事件中

private void btnDelRow_Press(object sender, EventArgs e)
        {
            try
            {
                MessageBox.Show("你确定删除吗?", "系统提醒", MessageBoxButtons.OKCancel, (object sender1, MessageBoxHandlerArgs args) =>
                {
                    try
                    {
                        if (args.Result == ShowResult.OK)     //删除该盘点单
                        {
                            string a = ((DControl)Parent.Parent).IID;
                            MessageBox.Show(a);
                            ((DemoForm)Form).Bind();
                        }
                    }
                    catch (Exception ex)
                    {
                        Form.Toast(ex.Message);
                    }
                });
            }
            catch (Exception ex)
            {
                Form.Toast(ex.Message);
            }
        }

12.响应布局参考demo 

SmobilerSamples

13.VS2017看不到那个SmobilerApplication

在群文件中下载SmobilerDesignerVSIX.vsix,放在c盘,运行以下命令 "C:\Program Files (x86)\Microsoft Visual Studio\Installer\resources\app\ServiceHub\Services\Microsoft.VisualStudio.Setup.Service\VSIXInstaller.exe" "C:\SmobilerDesignerVSIX.vsix"

14.Smobiler App 后台进程关闭的时候如何让它第一次打开是登录页或者是指定的页面

MobileGLobal.cs中的 OnSessionConnect方法,可以在里面跳转初始或者写ReStart,或者OnSessionConnect方法中e.Client.GetActiveForm().Show

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值