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控件,侧滑控件
侧滑控件介绍
基本的官网已经介绍了,以下是细节操作代码:
在列表的模板控件中需要定义一个变量,用来获取操作当前项的依据,这里根据编号
///
/// 编号
///
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