小编haj*_*ajn的帖子

即使是使用Cordova WKWebview Engine插件的基本Ionic项目也能生成白屏

我的问题: 我正在开发的离子应用程序非常慢,在发现UIWebView是罪魁祸首后,我正在寻找加速它的方法,WKWebView是最有前途的解决方案.

我的项目是什么样的:使用当前的Cordova 4.1.0 CLI 设置示例离子项目(例如http://ccoenraets.github.io/ionic-tutorial/install-ionic.html)(我正在使用Ionic 1.2.4)UIWebView用作默认值.然而,由于科尔多瓦4,新和更快WKWebView被支撑外的现成和可以强制,至少在IOS 9(科尔多瓦4支持WKWebView).

我使用和配置的插件: 通过cordova plugin add cordova-plugin-wkwebview-engine支持添加到iOS平台(现在9.3).在config.xml中添加并正确配置此插件时

<feature name="CDVWKWebViewEngine"> <param name="ios-package" value="CDVWKWebViewEngine" /> </feature> <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />

到目前为止我尝试了: 在终端中ionic build ios,然后构建成功,并且在OS X El Capitan 10.11.3上通过XCode 7.3在控制台日志中安装应用程序时Using WKWebView打印消息,但是在启动屏幕之后,应用程序容器会消失进入死亡的白色屏幕.一旦我删除该插件,就会使用UIWebView并且应用程序按预期工作.

替代方案:将原始插件wkwebview-engine-localhost替换为具有集成localhost的插件,可以正常工作.据我所知,WKWebview应该得到cordova和ionic的支持,而不必依赖一些带有集成服务器的"labs插件",该服务器是为了支持我不需要的iOS 8而开发的.据我所知,与旧的UIWebView相比,WKWebView有一些限制,特别是在处理file://语句已知问题时,但肯定有人在那里让Ionic + Cordova WKWebView工作没有我所有的麻烦,对吧?必须有更好的方法来实现webview的简单速度改进.

我尝试了每个解决方案,配置,插件组合,cordova cli版本降级(WKWebView支持最低为4.0.0),清除缓存,重置和重启我的设备,新安装和平台读取以及更新cordova,npm,各种插件,但除了上面的apache labs插件之外,所有这些都没有任何帮助,或者看起来像一个巨大的混乱,没有改变任何东西.

当远程调试通过我的本地的Safari设备上的应用程式的IOS,我可以在元素树看到,该机构停留标签或者为空,或简单的"NG-视图"占位符的角元件被示出.我是否正确通过WKWwebView处理它的方式检索文件/角度脚本一定存在问题?

注意:应用程序本身工作正常,ionic serve或者ionic emulate ios,只有在通过XCode部署到真实设备时(因为ionic run ios不起作用,但这是一个不同的故事),白色屏幕出现.

任何帮助都非常感谢,因为在我看来,我必须使用localhost + wkwebview插件或让用户遭受速度不佳.

非常感谢!

uiwebview ios cordova ionic-framework wkwebview

10
推荐指数
2
解决办法
6789
查看次数

如何在 @ngrx/data 中扩展自定义实体集合缩减器

在阅读并尝试了迄今为止的所有内容以将我的additionalCollectionStates更新到我的EntityCollection(基于文档中的一些信息,这个SO问题另一个SO问题另一个SO问题github存储库中的一个问题)之后,我发现自己陷入了困境应该是一个相当常见的任务,并且在使用 ngrx 之前根本没有问题:使用 ngrx 对存储的实体集合进行排序。搜索解决方案让我回到我已经看过 5 次的 10 个链接,大多数示例要么太基础,要么过时,要么根本不使用 ngrx/data,或者类似的问题根本没有答案。

环境:Angular 9.1.7、ngrx 9.1.2、macOS 10.14.6

目标

按照排序和分页文档中的描述,将自己添加并更新additionalCollectionState到我的 EntityCollection 。我没有从服务器获取sortQuery属性(sortField、sortDirection),而是在 GUI 中设置它并根据它们对集合进行排序。我知道 EntityMetadataMap 上存在设置,但它对我来说不够灵活,我想动态地对应用程序中不同 MatTable 中的集合进行排序。只要 MatTable 中的排序顺序/字段发生更改,就应该更新此附加属性。sortComparer

到目前为止我所取得的成就:

如上所述,additionalCollectionState 的 ngrx/data 方式有效我的集合是用我在 EntityMetadataMap 中提供的数据初始化的。然而,更新自定义集合属性并不像我从文档中理解的那样工作。由于我没有从服务器获取sortQuery属性,因此不会调用 ResultsHandler。

我通过两种方式解决了这个问题:a)使用 ngrx 和 ngrx/entity 方法,b)通过尝试扩展自定义EntityCollectionReducer的 ngrx/data 方式

a) 我成功创建了自定义 Action 和自定义Reducer 并更新了状态属性,但没有更新之前定义的集合属性。我的行动基本上是:

export const selectResourceSortQuery = createAction('[Resource] Get …
Run Code Online (Sandbox Code Playgroud)

angular ngrx-entity angular-ngrx-data ngrx-data

3
推荐指数
1
解决办法
3205
查看次数