作者:夏天 | 来源:互联网 | 2018-06-27 09:24
因为html是基于浏览器的。他有办法实现类似微信的可以实时推送信息的功能吗?更准确的说是后台运行功能。是不是html5后面只能在游戏类发力。像微信这种应用还是必须原生的?
因为html是基于浏览器的。他有办法实现类似微信的可以实时推送信息的功能吗?更准确的说是后台运行功能。是不是html5后面只能在游戏类发力。像微信这种应用还是必须原生的?
回复内容:
可以做但又不适合现在做,你觉得是可以做吗?
HTML5 要做到微信那样的应用是可行的,但像推送这种依赖设备和系统的功能,就超出了 HTML5 的能力范围。
因为移动设备的设计原因,会在一定条件下把宿主 app 暂停或退出,以释放资源,而 HTML5 运行环境的特点就限制了它在推送这种系统级应用上的发展,所以实时推送目前没有直接的实现方式,但是有代替方案。
第一种是用原生代码来处理推送,比如 PhoneGap 套 HTML5 app。
第二种是第三方推送平台,需要你服务器接受新消息后把通知转发给如 Boxcar 之类的平台,让他们进行推送。
第三种是在系统层面允许后台执行浏览器或 WebView 进程,在里面跑 background 页面,通过它来进行请求行为,像 Chrome Extension 那样,但是缺点明显,耗电量和流量都可能剧增。
推送和获取地址簿都可能是问题。非要 html5 ,用 hyper 的方式比较好解决这两个问题。
JSSDK + H5混合开发是一个生态,腾讯的这条构建 web 生态系统的路,还是有很多高手已经看懂了的。很快各大互联网巨头都会有自己的对策。但不管是什么对策,都是要基于 HTML5 来做了。对于 HTML5 的开发者和从业者,这都将是一个最好的时代。之前的问题回答都太旧,特来更新!
在ios上,就算是html8也没用。
微信网页版
http://wx.qq.com
有。
文字图片可用WebSocket
协议,较容易的实现方式是Nodejs[node.js
] + Socket.IO[Socket.IO: the cross-browser WebSocket for realtime apps.
]。
语音视频可用WebRTC
,编码实现上略有难度。
PS:以上方案Chrome支持最好,让应用都跑在浏览器里Google是最有经验的...
--------------------------------------------------------------------------------------------
又看了下题主的问题,偶的回答貌似有点跑遍了...
可以使用html5技术来做,叫做HyBrid应用开发(Html5做展现,利用java/C做后端手机能力调用)
需要调用手机能力的功能有:
- 电话薄
- 短信监听
- 信息推送
基本上就是将开发完的html页面一同打包到手机中(不能是部署在服务器端).
还有就是开发的时候也有一定的技巧比如SPA(单页面)\模块化加载\PhoneGap\MQTT(解决推送),
特别是要了解PhoneGap原理,包括JS端通知java(Android),Java长连接收到消息通知js.这些在PhoneGap的插件中都有相应的源码.可以学习,了解之后基本可以做了.但是还有一个非技术性问题,那就是HTML5做的微信,估计需要4核机器(基本都是android4.0以上)才能跑的流畅
题主的问题,可能有 2 个理解: 纯网页(标准浏览器打开)、内嵌到 Native App 里(或者叫 HyBrid 类)。
纯网页路子,需要的是手机浏览器(比如 iOS Safari)支持 Push Notification。iOS 这个功能现在还没有支持,虽然桌面上其实早就支持了。
HyBrid 类应用大家最常见的方案就是 PhoneGap 了。
PhoneGap 本质上,在 Native 能力部分,直接依赖于 Native API 或者代码,而开发者使用 HTML5 来实现业务逻辑。微信类似功能,需要支持消息推送的话,极光推送有现成的插件支持:
GitHub - jpush/jpush-phonegap-plugin: JPush's officially supported PhoneGap/Cordova plugin (Android & iOS). 极光推送官方支持的 PhoneGap/Cordova 插件(Android & iOS)。
利益相关:极光推送官方人员。
PhoneGap | Home