GUO Lin
GUO Lin
The recorded video and captured photo with SCNView have black background and the scale is wrong. @AFathi
Objective-C 中一般是用 delegate 实现这个需求的。让 delegate 返回一部分数据,或者做一部分事情。但还是要依赖一个 protocol。 用 intent 做这个事情是主动获取数据。并可以解耦更彻底。Android 的 intent 确实实现了这个功能。 我们没这么做是因为实现库时这个需求并不强烈。现在也许可以考虑一下。看看如何应用在douban app 中,如果确实比现在更好,有收益,我们就有动力做这件事。
查看这个 Commit https://github.com/douban/rexxar-ios/commit/e41ca292ecdaa1fa53a610030c9dcf43d1cd7dff
我不太清楚你想做什么。 Rexxar 中的 native 和 web 之间的关系如下: - Rexxar 的绝大部分功能都是 web 主动调用一个 native 的功能,native 被动处理 web 的请求。对于这类,`RXRWidget` 给出了实例。 - Rexxar 提供了唯一一种 native 主动调用 web 的方法。就是通过 `callJavaScript` 这个函数,调用一个已经在 web 里写好了的 js...
在我们的项目实践中,Web 控制了所有的业务逻辑,Native 是处于被动提供服务的状态的。所以,暂时没有这种 Native 到 Web 的通信机制。 但是,我们后续可能会提供一个简单的 Native 向 Web 发送一个数据计算结果的接口。但也应该只是使用在 Partial RXRViewController 的情况下。
@myeveryheart 你这种情况,我们通过将 RXRViewController 的生命周期通知给 Web 的方法来部分解决了。 https://github.com/douban/rexxar-ios/blob/master/Rexxar/Core/RXRViewController.m#L107 https://github.com/douban/rexxar-ios/blob/master/Rexxar/Core/RXRViewController.m#L117 Web 在接收到页面 visible 的通知时,自己检查一下是否需要刷新。 但是,这个接口还没有决定是否应该开放。
另外,再详细一些解释一下,我们为什么没有在 Full RXRViewController 中提供 Native 主动传送数据给 Web 的接口。 我们在设计 Rexxar 时,就希望由 Web 完全控制所有的业务逻辑。Native 层的 Rexxar Container 则只是被动提供服务。如果提供了 Rexxar Container 主动调用 Rexxar Web 的通用接口。也就意味着开了一个口子,让 Native 也参与了业务逻辑。这对页面的可移植性会造成影响。
在我们的实践中,request 由谁发起并不太重要。只要请求的 url 符合规则,Rexxar Container 就会做出反应。Rexxar Container 并不参与任何实际的业务。所以,它似乎并不应该关心 request 具体由哪个 controller 发出。 在 `RXRWidget` 协议中,方法 `- (void)performWithController:(RXRViewController *)controller` 需要将 controller 以参数传入。这是 Rexxar Container 知道需要对哪个 controller 做反应的地方。但是 Rexxar Container 也只需要知道这个 controller...
Rexxer Container 支持下拉刷新。但是 Demo 里的前端代码还没有实现这个功能。
下拉的前端实现关注一下 [rexxar-web](https://github.com/douban/rexxar-web),后面会在 Demo 里加上。但需要等一段时间。