|
当一个用户点开一款APP时,有时会出现由于网络异常,有时运行过程中发生崩溃,甚至内存释放机制会强制关闭等等异常都会打断用户正在进行的操作体验,这些异常不仅会对关键业务造成中断、ARPU降低等重大的影响,甚至还会造成用户留存 下降、DAU与MAU持续下降,但是最大的问题还是在这些异常无法有效解决,当然最大的原因是目前市场上的系统和设备的碎片化。
所以Smobiler在设计中,我们采用了一种我们内部叫做”Mirror ”的技术。故名思议,镜子反射出的影子是不会被任何东西破坏的。Smobiler开发的App同样不会被网络异常,强制关闭,用户误操作,内存异常释放,甚至重启都不会被破坏。因为当运行环境恢复后, ”Mirror ”的技术就能够直接从服务器再投射影子到我们的App端,这样确保了各种异常影响对于用户的操作体验带来的伤害是最少的。
但是在有些场景下,用户并不希望”Mirror”技术出现。起初在Smobiler 1.0时,每次恢复时都会有对话框提示用户选择是否启用”Mirror”的功能进行恢复。后来2.0的时候就被我们废除了,原因我们认为频繁给用户选择其实不是一个好功能,好的功能是应该能够感知是否被需要的。
所以,未来我们也会进一步优化”Mirror”功能。
如果你不喜欢”Mirror”功能,那可以通过以下方式解决:
1. 如果在界面上有退出功能,可使用 this.Client.ExitAndQuit() 方法,此方法会在退出客户端的同时,结束服务端的当前设备的Mirror镜像。
2. 在项目的MobileGlobal类的OnSessionConnect方法[此方法在每次客户端重新连接时会被触发]中,执行 e.Client.ReStart(),此方法会立即清除在服务端当前设备的Mirror镜像并重新创建镜像。
3. 【不建议】把设置里的”SessionTimeOut”参数改小,从而可以减少”Mirror”存在的时间。注:设置里的”SessionTimeOut”参数,能够影响”Mirror”存在的时间,同样影响正常操作的超时时间(类似于IIS的session会话超时时间)。
|
|