按照魔窗官方文档上进行集成就可以了(http://www.magicwindow.cn/doc/mlink-sdk-ios.html) 总体来说还是相对比较简单易操作的,在集成的过程中遇到了几个坑点,记录一下,也希望后续的读者如果遇到的问题,能够少爬一些坑
图一1、因为本身魔窗SDK自带了微信分享的SDK,而我们项目本身分享模块也有微信的SDK 所以就造成了冲突,我们项目采用的是私有库的开发方式,所以无法像文档上说的删除掉重复的SDK,因为一update私有库 所有的内容都会加载出来,造成库冲突如图一所示,最终采取的方式是分享的库依赖了简化版的SDK,同时依赖魔窗库 这样就避免了包冲突的问题
图二2.魔窗默认的后台配置会自带场景还原 场景还原时间为60分钟 当时这个坑踩的挺长时间,不知道哪里出的问题 后来将魔窗bbs差不多整个都看了下找到了这篇帖子 http://bbs.magicwindow.cn/topic/5 如果不想有此功能 可将场景还原有效时间设置为0
3.动态参数的传递 这个需要跟写前端的童鞋把这个参数约定好 这个占位符是必须要写的 不然web唤醒app时 是拿不到任何参数的
图三Moblink 与 魔窗对比
项目之前用的moblink来实现的 顺带做下对比
魔窗与moblink相比 优势还是比较明显的 它的代码要比moblink优雅很多 代码的侵入性也比较低 提供了一下统一的api欢迎app的回调 在这里可以处理所有的跳转 而moblink是必须要在跳转的页面注入一定的代码才可以实现唤醒功能 实现起来不是很友好
其次 moblink的key必须要写在info.plist里面 只能通过这种方式 而魔窗是通过代码来注册的 我们可以把魔窗的可以定义在配置文件中 相对来说会更方便、安全一些
所以总体来说 本人更偏向于魔窗的使用
但他们都有同一个问题需要我们app端自己去处理 就是说如果app所在的页面是我需要场景还原的页面 这个时候通过web唤醒 仍然会push出一个同样的新的界面 当点击返回时 还是当前的界面 这样体验其实并不太友好
我目前的思路是根据我的场景来确定的 我现在app的需求是只有详情页需要场景还原 所以 我可以通过id来区分页面 就是说一个id对应一个页面 当id相同时 为同一界面 不需要push出新页面 如果id不相同 说明不是一个界面 需要push新界面
到看今日头条app 它们目前也是没有做这种处理的 只要场景还原 就会push出新的界面
网友评论