簡體   English   中英

Dart Cordova + Polymer + Angular2 + FastClick

[英]Dart Cordova+Polymer+Angular2+FastClick

當將Dart Polymer的紙張元素與Angular 2一起使用時,如何消除iOS設備上〜300ms的點擊延遲?

例如,在Angular 2組件中,如果我的HTML模板包含帶有(click)="myFunc()" paper-button ,則在iOS設備中,myFunc會在這個可怕的臭名昭着的延遲之后被調用。

我嘗試過使用FastClick.js,但是在我將它(連接到正文或特定的紙張按鈕)后,該元素不再可點擊,當我點擊它時我仍然可以看到漣漪效果,但方法是沒有被調用(在移動設備上,但是在桌面瀏覽器中它像往常一樣工作),它對paper-input也有相同的效果,它沒有得到集中。

可以做點什么嗎? 也許可以制作相當於FastClick.js的Dart / Angular2?

更新1

值得一提的是,在UIWebView(cordova)下,我無法讓Angular2.dart和Polymer.dart同時工作,看起來它們不能很好地協同工作,這也是一個攔截器,可以使用一些幫助在那上面。

更新2

來源: https//github.com/aabluedragon/dart_issue_polymer_angular2_cordova

更新3

  • 白屏問題: Cordova首次出現的白屏問題似乎與Polymer有關; 它與Angular2無關。
  • 點按延遲:使用Polymer的on-tap事件可以防止點按延遲,這意味着您無法使用Angular2的(點擊)事件,這些事件不能很好地處理Tap作為Polymer。

我無法使用FastClick來處理Angular 2+(在我的情況下是Angular 4),但是我發現了一個名為ng2-events的不同解決方案,它具有多個功能,其中一個支持角4中的觸摸事件

# for angular 5
npm install --save ng2-events
# for angular 4
npm install --save ng2-events@3.1.0

然后在app.module.ts中

import {NgModule} from "@angular/core";
import {TouchEventModule} from "ng2-events/lib/touch";

@NgModule({
    imports: [TouchEventModule],
    exports: [TouchEventModule]
})
export class AppModule {}

然后在你的模板中:

<button (down)="touchAction()">Try this on mobile device</button>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM