我如何在Ionic中使用Swrve Web SDK

时间:2018-10-21 18:19:48

标签: javascript typescript ionic-framework

我正在尝试在离子项目中使用swrve web sdk,但无法对其进行初始化。以下是文档链接

https://docs.swrve.com/developer-documentation/integration/web/#Installing_the_SDK

我已经使用npm命令安装了SDK:

  

npm install @ swrve / web-sdk

之后,我使用import语句:

  

从“ swrvesdk”导入SwrveSDK;

在构造函数中,我将其声明为以下内容

SwrveSDK.default.createInstance({
appId: <app_id>,
apiKey: "<web_api_key>",
externalUserId: "<external_user_id>",
});

但是当我运行离子服务时,会出现以下错误

  

错误TypeError:无法读取未定义的属性'createInstance'

声明npm软件包或网络javascript库的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

文档看起来不对。完全错误。

尝试

[,]

我怀疑他们复制并粘贴了CommonJS,然后忘记对其进行编辑。

检查源代码可以确认这一点,告诉我们: https://github.com/Swrve/swrve-web-sdk/blob/release-1_0/SwrveSDK/src/Swrve.ts#L399

declare @i int; declare @len int; set @i=1 set @len=(select MAX (len(number) ) from test) while (@i<=@len) begin select number from Factor f where number in (select SUBSTRING(value ,@i,2) from test) end 看起来如此可疑的原因是,语句import SwrveSDK from "@swrve/web-sdk"; SwrveSDK.createInstance({ appId: <app_id>, apiKey: "<web_api_key>", externalUserId: "<external_user_id>", }); 从包的主模块中导入名为SwrveSDK.default.createInstance的导出,并将其绑定到名称import SwrveSDK from " @swrve/web-sdk";。当然可以想像,默认导出本身可以具有一个名为default的属性,但是使用CommonJS的示例则相反。

请注意,您可能需要设置defaultSwrveSDK。 另外,请确保您使用的是TypeScript> = 2.7或ES模块可互操作的加载器,例如SystemJS。