feat(views): add custom event WebChannel, add NullChannel