下载

开发文档

解决方案

社区

博客

Smobiler开发常见问题

在Smobiler使用过程中经常会遇到一些问题,在这里,我们就来把问题总结一下。

Ps:1)在项目开发过程中,记得打开日志运行日志开关打开后,会在项目运行时候,将项目的相关运行信息以日志的形式保存到对应的文件夹中,以便于解决在项目运行过程中遇到的一些问题。设计器日志开关打开后,会在你对页面进行设计以及布局的时候进行保存日志,以便发现以及纠正一些未知的Bug(不知如何打开可查看下面的帖子)。

2)默认情况下,无论是图片文件还是音频文件,3.5.0之前的版本都是存放在Bin-Debug下对应的文件夹中(如图片文件在Debug-Image),而3.5.0之后的版本(包括3.5.0)都是存放在Bind-Debug-Resources下对应的文件夹中(如图片文件在Debug-Resources-Image)。

1. 如果新建的项目界面无法打开,如下图:

原因是C++的某个类库没有安装,请安装:vc_redist.x86_2015.exe

2. 在绝对布局中,如何让Toolbar显示在页面底部?

Location中的Y设置为-1,LocationCorner设置为(0,0)。

3. 图片无法显示问题

a)请检查防火墙是否已关闭或者所启用端口防火墙是否已允许;

b)检查设计器上对应的图片路径下面是否有你所填写名称的图片,或者图片名称是否有填写错误。

4. 打包后APK执行不了,提示网络不给力

a)检查服务器项目是否运行;

b)检查服务器和客户端版本是否一致;

c)检查云平台打包项目填写的服务器地址和端口是否和服务器项目端口一致;

d)检查手机端网络是否和服务器项目同一网段或手机端和服务器端项目地址端口都处于外网;

e)进行网络诊断。

5. 官网上的IOS Client无法下载,点击后没反应

ios client需ios系统且使用其自带的Safari浏览器进行下载,这个是ios强制要求所决定的。

6. 运行的IM的Demo,提示im注册用户在融云中超限

项目里面的appKey和appSecret需要替换成用户融云里面自己APP的key和Secret。

7. 在ListView里面放了CheckBox,如何操作每一行的CheckBox?

对ListView进行遍历,在遍历中对CheckBox进行操作。

8. ListView中点击行项,如何获取某个控件的值,传递到另一个页面?

4.0版本可以直接在点击的时候,直接获取到某个控件的值,如lblState.BindDataValue。

9. 调用Camera进行拍照,直接返回的话会导致报错

这个是因为无论是否进行了拍照,都会调用ImageCaptured事件,你在事件中写了e.save,但是你返回的情况下,数据为空,此时,保存一个空的数据,会导致报错;在保存前面加个判断,获取数据不为空时,则进行保存,就可避免报错。

10. smobiler开发的app在手机上使用,手机必须要连接外网吗?内网的情况下可以使用吗?

在APP上的服务器地址与服务端的服务器地址一致时,内网可以使用。

11. 用户唯一在线,能否实现?

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

12. SMO有定时任务吗?比如:开个定时器

实现定时任务可以用timer控件。

13. ListView如何删除某一行数据?

方法1:ListView1.Rows.Remove(row)

方法2:ListView1.Rows.RemoveAt(RowIndex)

14. 如何退出应用?

this.Client.Exit();

15. 怎么打开app的时候显示图片,并控制时间?

在APP起始窗体Load事件中,启动Timer,进行时间设定即可。

16. APP中启用了一个session保存变量,如果同一个用户登录了不同设备,所产生的session是否一致?

两个session,你在哪个设备操作,用的就是那个Session,session跟你的用户影响无关,跟你的客户端所挂钩。

17. 应用发布的服务器的外网是通过路由器映射的内网ip,是否支持外网访问?

支持。需开启对应端口。

18. ListView中,单元格如何换行显示?

将Wrap属性设置为“Wrap”即可。

19. git下载的SmoONE如何配置数据库?

在VS程序包管理器控制台下,执行一下Update-Database –Verbose即可。

20. 程序更新了是否需要重新打包?IP地址更改是否需要重新打包?

1)程序里没有添加新的第三方插件或使用新版本的基础控件,则不需要重新打包;

2)ip地址更改只需要到云平台对应应用的“应用设置”进行ip地址修改即可,不需要重新打包。

21. 是否支持离线操作?

不支持离线操作。

22. smobiler的操作性能如何?若界面控件多,外网环境,是否影响流畅程度?

Smobiler是基于原生应用的开发平台,界面操作时与服务端传输的仅是变动的数据,平均不会超过1KB的数据量;另外基于客户端的栈技术,保证操作的流畅性,还有特有的Mirror技术,可以保证在网络不好的情况下,也不会丢失界面。

23. TextBox能限定只输入文字类型吗?比如只可输入数字?

1)不能限定只输入文字类;

2)可keyboardtype属性设置键盘模式,比如只出现数字键盘或者字母键盘。

24. smobiler如何进行资源的管理?

目前有File和Resource,File主要对于文件的管理,Resource主要对系统的缓存进行管理。

25. 跳出的提示框:系统从异常中恢复,是怎么回事?

如果抛出异常不处理(没有try catch),系统会捕获这个异常并触发系统重新启动。

26. 能否用SmobilerForm的静态变量保存客户端信息?

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

27. 能否把调试客户端扫描后的产生调试连接的名称开放修改?

4.3版本服务端可修改名称,运行后在Smobiler Launcher上修改“名称”即可。

28. 高德插件key,在高德里应该选Android还是web端?

1)打包时的高德key,是选择web服务获得的key;

2)添加地图插件需要的key是选择android平台获得的key。

29. dump日志在哪里看?

项目 bin\Debug\DeveloperTrace 中查看。

30. 程序中如何实现,页面直接的跳转和页面的关闭?如何先打开窗体,再关闭自身吗?

this.Show(new Form())与this.Form.Close();与this.Show(Form2,(obj,args)=>{this.Close();};

31. 云平台中打包时有上传资源,那是需要上传什么文件?

打包上传资源ZIP,是可以上传一些图片文件等,打包进客户端后可在使用时无需再从服务端下载。

32. 如何关闭客户端?

可以下载SMOone看看(源码下载地址),MobileForm里面有个KeyDown事件。

33. 打包大致需要多少时间?

打包平均一般需要十几分钟左右

34. 云平台上的IP地址?

IP地址的设置也主要考虑了在部署及修改服务器地址的便捷性。另外这个地址是只需要获取一次即可,在云平台上修改后也是即时生效的。并且云平台上也有安全策略(白名单,黑名单),会在用户第一次连接的时候,进行安全策略判定是否允许连接。还有考虑到实际上不会频繁的去变更服务器地址,所以基本上只需要在第一次安装后连接一次外网即可。

35. 下载安装Smobiler Designer后在vs中不能创建SmobilerApplication?

安装SmobilerDesignerVSIX.vsix。安装文件可QQ群里咨询peter。

36. smobiler可以开发MAC系统的程序么?

不能开发mac系统,只有android和ios系统.

37. app如何自动更新?

app自动更新,可以在窗体上调用this.RedirectUrl(apk更新的地址),即可下载更新,可以通过this.Client.Version或者this.Client.CoreVersion来获取当前客户端的版本号,同当前需要更新的版本号一致,来判断是否需要升级。

38. 项目部署到服务器之后,报如下图所示的两个错误?

在服务器上安装.NET 4.6.1即可。

联系电话:400-0588560   021-63462921   QQ群:308522976

总部:上海市黄浦区斜土路768号致远大厦8楼

Copyright ©    上海石磨信息科技有限公司   保留所有版权ICP备案号:沪ICP备18010250号   法律声明  |  隐私政策
返回
顶部