hybrid简单了解

技术点总有它的来由,唯一要做的是静下心来看 谁知道之后又会怎么样了。

 1.hybrid 基本概念

⑴.什么是hybrid?

hybrid即“混合”,前端和客户端的混胡开发模式,有的同时需要server端。 hybrid 底层依赖于Native提供的容器(WebView),上层使用html&css&JS做业务开发。

⑵.hybrid存在的意义?

可以快速迭代开发更新。(无需app审核,哈哈因为对手机的操作权限不高?,相对于app)

跨平台、低层本,双端(ios和安卓)公用一套代码。(两端接口一致哈)

Hybrid从业务开发上讲,没有版本问题,有BUG能及时修复(相对于app)。

缺点:开发成本高,连调,测试,查bug都比较麻烦,运维成本高(以实现方式具体比较,看下图)。

⑶webview是什么?

app中的一个组件,native提供的容器盒子,用于加h5页面,小型浏览器内核。

 2.前端和客户端的交互和通讯

大概描述:js访问客户端的能力,传递参数和回调函数参数,客户端通过回调函数返回内容。

代码来源:https://github.com/tcoulter/jockeyjs/blob/master/JockeyJS/js/jockey.js


dispatchMessage: function(type, envelope) {
    // We send the message by navigating the browser to a special URL.
    // The iOS library will catch the navigation, prevent the UIWebView
    // from continuing, and use the data in the URL to execute code
    // within the iOS app.

    var src = "jockey://" + type + "/" + envelope.id + "?" + encodeURIComponent(JSON.stringify(envelope));
    var iframe = document.createElement("iframe");
    iframe.setAttribute("src", src);
    document.documentElement.appendChild(iframe);
    iframe.parentNode.removeChild(iframe);
    iframe = null;
}

前端和客户端通信协议schema 协议

⑴.什么是schema协议?

大概描述 :scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面;通过scheme协议,服务器可以定制化告诉App跳转那个页面,可以通过通知栏消息定制化跳转页面,可以通过H5页面跳转native页面等。 

通过执行以下操作支持自定义URL方案:

  • 定义应用程序URL的格式。
  • 注册应用程序URL方案,以便系统将适当的URL定向到应用程序。
  • 处理应用收到的网址(url)。

一些有URL Scheme 

https://www.zhihu.com/question/19907735

⑵.H5与Native通信?

接(1)客户端可以拦截跳转的自定义的url,并做处理

                                                                                     (图片来源点击)

.native到h5页面?

native提供的容器盒子那么native,可否调用它提供的webview,中window对象的方法了?

                                                                                              (图片来源点击)

猜你喜欢

转载自www.cnblogs.com/luoxiaoer/p/9710740.html