{"id":12,"type":"Article","title":"When 如何由事件触发？","slug":"distribution-evens-trigger","content":"当用户访问系统时，可以根据事件规则在任何页面来向用户投放评价/问卷。\r\n\r\n注意：只有当评价/问卷的样式使用的是**「页面弹窗」**时，投放设置中才能配置触发事件时自动弹出问卷。\r\n\r\n# 1. 事件触发机制\r\n## **1.1 配置事件**\r\n\r\n在配置触发事件弹出规则时，你需要点击**「添加事件」**，选择/输入对应的事件code，还可以通过传入事件属性作为触发评价/问卷的条件。当用户访问系统过程中触发的事件与之匹配，将会投放评价/问卷。\r\n\r\n![](https://help-assets.jinshuju.net/assets/file/1288/%E4%BC%81%E4%B8%9A%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_cd28fe8a-ea02-4ce5-bca9-851d51fef405.png)\r\n\r\n**- 选择已传入事件/事件属性**\r\n\r\n支持从已传入的事件、事件属性中直接选择事件code、事件属性来配置，添加事件输入框下拉后依次显示最近30天出发次数最多的事件以供选择。\r\n\r\n**- 预设未传入事件/事件属性**\r\n\r\n同时支持配置未传入事件、事件属性的触发规则，直接输入未传入的事件code、事件属性即可，后续代码传入事件，匹配成功即可成功触发并弹出评价/问卷。\r\n\r\n## **1.2 弹出时机**\r\n![](https://help-assets.jinshuju.net/assets/file/1287/%E4%BC%81%E4%B8%9A%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_9413aa88-8d8a-42bb-8bfa-3aff8bfc20c5.png)\r\n\r\n**- 触发事件时自动弹出**\r\n\r\n在用户访问到该页面，触发事件后，自动弹出，完成填写后，评价/问卷弹窗将关闭。\r\n\r\n**- 触发事件一段时间后自动弹出**\r\n\r\n在用户访问到该页面，触发事件一段时间后，自动弹出，完成填写后，评价/问卷弹窗将关闭。\r\n\r\n# 2. 代码示例\r\n\r\n**1. Javascript 示例代码**\r\n\r\n```javascript\r\n\r\n// 接口定义\r\n// _howxm('event', '\u003cevent_code\u003e', {\u003cattributes\u003e});\r\n\r\n// Example\r\n_howxm('event',  // required\r\n       'payment_clicked',  // required\r\n       {\r\n          product: 'pro_plan',\r\n          price: 199\r\n       }\r\n);\r\n```\r\n\r\n\r\n**2. Android 示例代码**\r\n\r\n```java\r\n/**\r\n* @param eventCode 事件code，必填\r\n* @param eventExtra 触发事件时的一些自定义定义，比如当前页面的访问次数等\r\n* @param context 需要进行弹框的Activity Context\r\n*/\r\nHowxm.event(@NonNull String eventCode, Map\u003cString, Object\u003e eventExtra,@NonNull Context context);\r\n\r\n// Example\r\nMap\u003cString, Object\u003e eventExtra = new HashMap\u003c\u003e();\r\neventExtra.put(\"pageAccessTimes\",3);//页面访问次数\r\nHowxm.event(\"eventCode\", eventExtra, this);\r\n```\r\n\r\n**3. iOS 示例代码**\r\n\r\n```swift\r\n// 接口定义\r\nHowxm.event(code: code, attributes: attributes, { () in\r\n  // success callback\r\n }, { (message: String?) in\r\n  // failed callback\r\n })\r\n\r\n// Example\r\nHowxm.event(code: \"payment_click\", attributes: [\"product\": \"pro\", \"price\": 199] { () in\r\n  // success callback\r\n }, { (message: String?) in\r\n  // failed callback\r\n })\r\n \r\n```\r\n \r\n**4. 小程序 示例代码**\r\n\r\n```\r\n  const howxm = requirePlugin('howxm-plugin')\r\n\r\n  howxm.event(\r\n    '事件code', // 必填\r\n    {\r\n      // 事件属性，选填\r\n    },\r\n    function () {\r\n      // 成功回调\r\n    },\r\n    function (err) {\r\n      // 失败回调\r\n    }\r\n  )\r\n```\r\n\r\n\r\n# 3. 注意事项\r\n\r\n- 同一问卷/评价设置多个事件时，事件之间关系为**「或」**，只要满足任一事件，就会触发并弹出问卷/评价\r\n- 事件触发与网页位置相关联，只有在符合投放条件的页面中触发事件才会弹出问卷/评价\r\n- 事件触发规则和网页触发规则同时受**「弹出策略」**控制\r\n\r\n\r\n# 4. 使用场景示例\r\n\r\n**4.1.问卷/评价配置规则：所有页面均支持投放，仅配置触发事件后停留10S后弹出**\r\n\r\n- 在 https://x.example.com/xx 页面触发事件 10s 后弹出问卷。进入 https://x.example.com/yy 页面，由于没有触发事件，所以不弹出问卷\r\n- 在 https://x.example.com/xx 页面触发事件 10s 后弹出问卷。进入 https://x.example.com/yy  页面重新触发事件，则在 10s 后弹出问卷\r\n- 在 https://x.example.com/xx 页面触发事件，在5S时进入 https://x.example.com/yy  页面，则在 5s 后弹出问卷\r\n-  在 https://x.example.com/xx 页面触发事件后，此时问卷/评价被关闭/删除，则由于问卷/评价被关闭，所以不会弹出\r\n\r\n**4.2.问卷/评价配置规则：https://x.example.com/xx 页面支持投放，仅配置触发事件后停留10S后弹出**\r\n\r\n- 在 https://x.example.com/xx 页面触发事件 10s 后弹出问卷\r\n- 在 https://x.example.com/xx 页面触发事件 10s 后弹出问卷。进入 https://x.example.com/yy  页面重新触发事件，由于页面不匹配，所以不会弹出\r\n- 在 https://x.example.com/xx 页面触发事件，在5S时进入 https://x.example.com/yy  页面，由于页面不匹配，所以不会弹出\r\n\r\n","featured":false,"category_id":18,"created_at":"2023-02-15T00:28:48.438Z","updated_at":"2023-08-23T08:53:40.997Z"}