reactjs - 如何在 React Frontend 中集成 web 参与
问题描述
我得到了它的源代码,但是如何导入它并在我的组件中使用它?
<script id='_webengage_script_tag' type='text/javascript'>
var webengage;!function(w,e,b,n,g){function o(e,t){e[t[t.length-1]]=function(){r.__queue.push([t.join("."),
arguments])}}var i,s,r=w[b],z=" ",l="init options track screen onReady".split(z),a="feedback survey notification".split(z),c="options render clear abort".split(z),p="Open Close Submit Complete View Click".split(z),u="identify login logout setAttribute".split(z);if(!r||!r.__v){for(w[b]=r={__queue:[],__v:"6.0",user:{}},i=0;i < l.length;i++)o(r,[l[i]]);for(i=0;i < a.length;i++){for(r[a[i]]={},s=0;s < c.length;s++)o(r[a[i]],[a[i],c[s]]);for(s=0;s < p.length;s++)o(r[a[i]],[a[i],"on"+p[s]])}for(i=0;i < u.length;i++)o(r.user,["user",u[i]]);setTimeout(function(){var f=e.createElement("script"),d=e.getElementById("_webengage_script_tag");f.type="text/javascript",f.async=!0,f.src=("https:"==e.location.protocol?"https://widgets.in.webengage.com":"http://widgets.in.webengage.com")+"/js/webengage-min-v-6.0.js",d.parentNode.insertBefore(f,d)})}}(window,document,"webengage");webengage.init("your INIT key");
</script>
解决方案
- 您应该首先创建一个帐户。您可以从 14 天免费试用开始。这将使您能够获得一个名为 licenseCode 的帐户 ID,该 ID 需要用于初始化问题中提到的 Web SDK 脚本。
- 按照文档设置您的帐户。
- 对于基于 ReactJS 的前端,您应该将 SDK 集成脚本添加到您的
index.html
文件中并添加到该head
部分中。
<head>
..
..
..
<script id="_webengage_script_tag" type="text/javascript">
var webengage;
! function(w, e, b, n, g) {
function o(e, t) {
e[t[t.length - 1]] = function() {
r.__queue.push([t.join("."), arguments])
}
}
var i, s, r = w[b],
z = " ",
l = "init options track screen onReady".split(z),
a = "feedback survey notification".split(z),
c = "options render clear abort".split(z),
p = "Open Close Submit Complete View Click".split(z),
u = "identify login logout setAttribute".split(z);
if (!r || !r.__v) {
for (w[b] = r = {
__queue: [],
__v: "6.0",
user: {}
}, i = 0; i < l.length; i++) o(r, [l[i]]);
for (i = 0; i < a.length; i++) {
for (r[a[i]] = {}, s = 0; s < c.length; s++) o(r[a[i]], [a[i], c[s]]);
for (s = 0; s < p.length; s++) o(r[a[i]], [a[i], "on" + p[s]])
}
for (i = 0; i < u.length; i++) o(r.user, ["user", u[i]]);
setTimeout(function() {
var f = e.createElement("script"),
d = e.getElementById("_webengage_script_tag");
f.type = "text/javascript",
f.async = !0,
f.src = ("https:" == e.location.protocol ? "https://widgets.in.webengage.com" : "http://widgets.in.webengage.com") + "/js/webengage-min-v-6.0.js",
d.parentNode.insertBefore(f, d);
})
}
}(window, document, "webengage");
webengage.init('YOUR_WEBENGAGE_LICENSE_CODE');
</script>
..
..
..
</head>
- 现在,您可以访问
webengage
任何组件内的对象,并进一步利用文档中提到的各种 SDK 方法。
import React, {
Component
} from "react";
class App extends Component {
componentDidMount() {
webengage.track('CustomEvent', {
'firstName': 'Alex'
}); // version 1
window.webengage.track('CustomEvent', {
'firstName': 'Alex'
}); // version 2
}
render() {
return (
<div className = "App" >
<header className = "App-header" >
<img src={logo} className = "App-logo" alt = "logo" />
<a className = "App-link" href = "https://reactjs.org" target = "_blank" rel = "noopener noreferrer" >Learn React
</a>
</header>
</div>
);
}
}
ReactDOM.render( <App/> , document.getElementById("root"));
如果您在项目中使用了一些语法 linter,例如 (eslint),则使用第一个版本的代码会引发错误。有关引用未导入库的更多信息,请参阅此详细说明。
因此,您可以尝试使用带有
window
关键字的第二个版本。此外,如果您正在构建单页应用程序,请检查 WebEngage 的 WebSDK 的SPA版本。
希望这些步骤可以帮助您轻松集成。
推荐阅读
- python - 广义逻辑回归 Python:如何正确定义二进制自变量?
- java - 我在多个表的内容提供程序查询中做错了什么?
- flutter - 如何避免在flutter中一次又一次地单击页面时创建新实例?
- json - JSON 模式验证器 - 根据模式不同部分中的另一个属性验证一个属性
- powershell - 将键盘输入从被调用进程重定向到调用程序
- java - SQLite 异常:没有这样的列
- android - How to get address name by building ID in 2GIS?
- html - 如何显示块flex的最后一部分?
- google-api - "get premium account" error with the Google Places API
- multithreading - How does Dart/Flutter execute code concurrently even if it's single threaded?