我总是想知道像 Airbnb、Flipkart 和 Swiggy 这样的应用程序是如何即时更新他们的 UI 的。即使我没有更新应用程序,Flipkart 在节日期间也会显示不同的 UI,而 Swiggy 总是根据设备位置更改其 UI。
我如何在我的 react-native-app 中实现这个?
Webview 是解决方案吗?
请帮助我..谢谢
我总是想知道像 Airbnb、Flipkart 和 Swiggy 这样的应用程序是如何即时更新他们的 UI 的。即使我没有更新应用程序,Flipkart 在节日期间也会显示不同的 UI,而 Swiggy 总是根据设备位置更改其 UI。
我如何在我的 react-native-app 中实现这个?
Webview 是解决方案吗?
请帮助我..谢谢
有多种方法可以执行此操作。
一种方法是使用您提到的 WebViews,这将使更改接口变得微不足道,因为它在服务器中受到完全控制。但是这种方法的主要问题将是性能和非原生的外观和感觉。这是首先使用 React Native 优于混合框架的两个主要优点,因此,在任何地方使用 WebViews 都没有多大意义。但是,如果您的应用程序中有一小部分定期更新(前服务条款),您可以使用 WebView 来执行自定义视图。
一种更常见且省力的方法是为不同的外观准备好所有代码,但使用功能标志来切换不同的视图。这与黑暗主题的工作方式相同。我们可以通过这种方式进行的定制数量是有限的,因为我们需要提前对所有内容进行编码。
另一种方法是使用服务器驱动的 UI。使用此方法,您将在客户端中有一个预定义的模板,您可以在运行时使用来自服务器的数据填充这些模板。对于一个非常简单的示例,您可以拥有一个可以填充季节性问候图像的标题图像。但不是像图像这样的简单事物,这也可以是更明显的变化。(例如 - 列表视图而不是网格视图)
一种更复杂的方法是使用code push。这将允许诸如季节性 UI 更改之类的事情。但这需要更多的设置,并且可能无法提供最佳的用户体验。
Webview是最好的,因为通过这种方式您可以更改 UI 和业务逻辑或 UI 处理逻辑。
但是你必须为此开发一个最低限度的架构。
这是我的方式。
开发主机层以使用相机、共享首选项、文件系统等。
开发一个通信层,负责您的 webview 和主机层之间的通信,以便您的 webview 可以访问所有必需的设备平台(例如 android 或 ios)功能,而这些功能通常无法直接从 webview 访问。
所以现在你可以渲染任何你想要的 UI(通过 HTML 和 CSS),你可以通过 javascript 放置任何你想要的逻辑,现在你可以访问你真正需要的所有必需的设备功能。
所以,现在你是你的应用之王。
只是您必须在真正需要时不断更新服务器中的 UI 或逻辑。
有一些缺点,比如
但这只是一个有效的解决方案,而不是服务器驱动的 UI 的智能解决方案。
我使用了一些服务器驱动的 UI 框架。但它们似乎是开销并且缺乏一些功能。
所以应该有一个框架,通过它我们可以从服务器动态渲染原生 UI,具有相应的业务逻辑更改功能和所有可能的设备功能的可访问性。
几个月前,我开始开发服务器驱动的 UI 框架。我做了一点。但是因为时间不够,实在没能完成。
如果有人对此项目感兴趣,请随时与我联系。
我对这个项目有一个可靠的想法和架构。
该框架可以在应用程序开发领域掀起一场革命。
电子邮件:bedmad82@gmail.com