跨平台的webview。建筑师观点?
Posted
技术标签:
【中文标题】跨平台的webview。建筑师观点?【英文标题】:webview across the platform. Architect View? 【发布时间】:2013-04-01 09:24:23 【问题描述】:我有 c,linux 背景,对 Web 应用程序的了解较少。我遇到了一些奇怪的要求,并且很难提供解决方案。
简要要求:
一个代码/多个平台[移动和桌面]
我所知道的:
1) 界面前端。
Webview 在所有移动、桌面应用程序中都提供。 [我知道的 Atlease:ios、Mac、来自 QT 的 Windows/Linux/Mac ]。
结论:我可以有html5代码,可以跨桌面/移动平台使用。 问题:如何从 HTML/javascript 进行本机访问。我们可以使用phonegap 仅支持移动设备,但不支持台式机[如果我错了,请纠正我]。如果我们使用 QT,那么 对android/iOS的支持不多[如果我错了请纠正我]。
2) 用c++编写中间层: iOS/Windows/Mac/Android 支持 C++。
问题:
在 iOS/Android 中,我知道如何使用 Xcode 引入 webview。但是我怎样才能在 Windows 和 Mac 中获得 webview。
简而言之,我们有没有支持 Mac/Windows/iOS/Android 的开源框架
是否可以编写我们自己的从 JavaScript 到 C++ 代码的 Native 函数调用机制, 这很常见。
请推荐。
【问题讨论】:
老实说,只是不要......一个代码库下的这么多平台只会导致比它解决的问题更多的问题。最好的办法是将非 UI 部分分离出来并共享它们。 @borrrden 您的意思是 HTML/JavaScript 与不同 Native SDK 之间的连接? 比如把逻辑部分写成可以编译到所有平台的语言,然后写出原生显示的UI。 Android、Windows 8 和 iOS 都存在根本性的差异,以至于令人痛苦……所以我怀疑你是否会通过尝试使用一组代码编写 UI 获得令人满意的结果。 但是 HTML5 是一样的,对吧?如果我错了,请纠正我。 :)。 当然,但祝你好运,尝试让它响应并能够使用平台的所有功能。此外,Windows 8 上的 Web 视图是最大的痛点。 【参考方案1】:答案:
您可以通过打开浏览器或作为浏览器插件来启动应用程序,否则对于移动 webkit,您需要将其移植到您希望运行应用程序的平台上,例如 Mac、Windows 等 你可以很容易地在多平台部分移植代码,但是你可以找到许多开源 SDK,如 phonegap , snehaTouch 等 有适用于所有智能手机的应用程序,但不适用于移动和台式机/笔记本电脑环境,多平台台式机/笔记本电脑您可以使用 Java 应用程序。 是的,您可以通过使用 javasript 从 webkit 调用来调用各自平台中的本机函数。,所以单个代码可以在移动操作系统中运行,或者对应部分编写 Java?c++ 代码将在所有台式机/笔记本电脑操作系统中运行
【讨论】:
以上是关于跨平台的webview。建筑师观点?的主要内容,如果未能解决你的问题,请参考以下文章
跨平台桌面开发,Electron还是WebView2 (中篇)
跨平台应用开发进阶(五十七):uni-app 通过 overrideUrlLoading 实现拦截 webview 窗口的 URL 跳转请求