在做曲奇问答的过程中,我始终觉得由于种种限制,发版这个事情非常不灵活,包括其他程序猿或产品汪可能都会有类似的感受。
我举个例子,我们一定是要开发完一个版本迭代需要的所有feature后,并且经测试可以用了ps 文字 排版ps 文字 排版,才能发布到AppStore或者各大应用市场。但通常各大应用市场审核就需要花一定的时间,尤其是AppStore(PS.加急的次数还非常有限),这样新的feature开发完直至能给到用户使用也还要好多天。并且由于这个原因,使得如果一个版本迭代规划只开发1、2个小feature就变得非常不划算了,因为可能开发所需花费的时间只有2、3天,但发版却需要1周才能通过,并且一旦遇到一些问题和碰到临时需要调整一些feature的需求的时候还需要经历同样的过程,这样就太不灵活了。
那么,我们就思考一下,是否能通过某些方式把一些功能放到服务器端?这样是不是就可能每天发布一个“版本”都可能不是问题呢?实现对功能/交互的云控。
Android和iOS开发框架中,分别提供了WebView和UIWebView作为承载网页的载体控件,它在加载URL并显示的过程中会产生一些事件,并回调给我们的APP应用程序,以便我们在网页加载过程中做应用程序想处理的事情。比如说客户端需要显示网页加载的进度、网页加载发生错误等等事件。并且,Android和iOS都是支持JS与原生代码之间互相调用的(猿和汪们可以查阅相关资料了解更多细节,这里不做赘述)。
那么既然Android和iOS中都提供了可以加载URL的控件,并且在WebView(UIWebView)中都是支持JS调用原生系统事件,原生代码也可以通过调用JS来控制WebView,这就具备的把一些APP功能放到服务器端的应用条件了。
WebView(UIWebView)可以利用Html做界面布局,通过这种方式,APP端可以通过加载URL从服务器端获取Html并按一定的排版来展示一些数据。并且通过和JS的交互,做一些复杂的处理。
tips
这里我画了一张图,大概勾勒一下实现的过程和方法:
APP外部:
图中“APP外部”表示无论从微信还是其他外部应用跳转都会可以将一个携带了参数的URL传递给APP客户端,然后通过URL解析参数从服务器端(包括本地的HTML模板)获得HTML(包含了数据)+JS(定义了功能/行为/交互)。
URL解析器:
当获得URL后,将URL传入URL解析器进行解析,这里需要知道得到的结果就是HTML+JS,讲得到的结果传给WebView(UIWebView)进行渲染。这里的URL解析器可以写在自定义的WebView(UIWebView)中也可以单独封装出来,作为处理URL和调用
来源【写作训练营】自媒体,更多内容/合作请关注「辉声辉语」公众号,送10G营销资料!
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站不拥有所有权,不承担相关法律责任。如发现有侵权/违规的内容, 联系邮箱jkhui22@126.com,本站将立刻删除。