我正在尝试创建一个连接到GameSparks的服务,如下所示:
import { Injectable } from '@angular/core';
var gamesparks = new GameSparks();
var gsKey = "XXXXXXXXXX";
var gsSecret = "XXXXXXXXXXXXXXXXXXXX";
var gsCredentials = "";
@Injectable({
providedIn: 'root'
})
export class GamesparksService {
isLive = false;
init() {
if (this.isLive) {
gamesparks.initLive({
key: gsKey,
secret: gsSecret,
//credential: gsCredentials,
onNonce: this.onNonce,
onInit: this.onInit,
onMessage: this.onMessage,
logger: console.log,
});
} else {
gamesparks.initPreview({
key: gsKey,
secret: gsSecret,
//credential: gsCredentials,
onNonce: this.onNonce,
onInit: this.onInit,
onMessage: this.onMessage,
logger: console.log,
});
}
}
//Callback function to hmac sha256 a nonce with the secret. It's assumed you will have your own method of securing the secret;
onNonce(nonce) {
return CryptoJS.enc.Base64.stringify(CryptoJS.HmacSHA256(nonce, gsSecret));
}
//Callback to handle when the SDK is initialised and ready to go
onInit() {
console.log("Initialised");
}
//Callback to handle async messages from the gamesparks platform
onMessage(message) {
console.log("onMessage: " + JSON.stringify(message["scriptData"]));
}
}现在,脚本不知道GameSparks()和CryptoJS是什么,我猜它也不能识别GameSparks SDK。
SDK放在这个文件夹中:
./assets/gamesparks/gamesparks.js
./assets/gamesparks/gamesparks-functions.js
./assets/gamesparks/hmac-sha256.js现在我上面的服务脚本放在这里:
./app/services/gamesparks.service.ts如何将SDK实现到服务脚本中?
希望提前得到帮助和感谢:-)
发布于 2019-10-05 18:01:46
最简单的方法是用npm安装它。因此,您必须安装这些包:
npm install crypto-js遗憾的是,目前还没有适用于gamesspark-sdk的包。在那里,您必须从您的资产源导入它。在您的代码中添加以下行:
import * as gamesparks from './assets/gamesparks/gamesparks.js';
import * as gsf from './assets/gamesparks/gamesparks-functions.js';
import * as cryptojs from 'crypto-js'; //When installed by npm然后,您可以通过以下方式使用函数:
library.functionName()发布于 2019-10-05 17:51:52
要在TypeScript中使用JavaScript库,请使用以下语法
import * as yourName from 'pathToLibrary';然后将其与
yourName.functionInLibrary();https://stackoverflow.com/questions/58246828
复制相似问题