原生和H5的配合

原生APP跳转页面是很常见的事情,但是由于iOS上架审核比较慢的原因,某些页面可以直接通过H5来实现,即原生APP调用H5页面。一般来说,H5内嵌到APP中,其实就是放到该APP的webview中,直接跳转是没有什么问题的:扔到服务器上,给原生开发人员一个地址,让他跳过去就可以了,但是更多的情况是互相传值,即APP给H5页面一些值(token、id、obj等),H5需要接受到,并且处理这些值,然后返回原生APP,这就是原生APP和H5页面的传值问题了。

日常开发中如果碰到,可以使用以下两种方法:

iOS

iOS开发者都会有账号,让iOS开发者给你一个方法,如window.webkit.messageHandlers.bluajack.postMessage(),然后把它放到H5页面的某个点击事件中,iOS就可以拿到。当然postMessage()也可以传值。

Android

和安卓开发人员协调,定义一个xxx的方法(function xxx(){}),然后再定义一个URL,让安卓开发者去webview中拦截,如果有更多互相的操作,可以定义多个方法和URL,拦截到该请求,就可以继续工作了。

注意事项

注意H5页面中,meta标签要加入apple的那几个,不然有些苹果设备不识别。

<meta content="yes" name="apple-mobile-web-app-capable">
<meta content="yes" name="apple-touch-fullscreen"> 
<meta content="black" name="apple-mobile-web-app-status-bar-style">