Angular добавляет скрипт .js к сервису - PullRequest
0 голосов
/ 05 октября 2019

Я пытаюсь создать сервис для подключения к 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 вскрипт сервиса?

Надеемся на помощь и заранее спасибо: -)

Ответы [ 2 ]

1 голос
/ 05 октября 2019

Самый простой способ - установить его с помощью 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()
1 голос
/ 05 октября 2019

Чтобы использовать библиотеку JavaScript в TypeScript, вы используете синтаксис

import * as yourName from 'pathToLibrary';

, а затем используете его с

yourName.functionInLibrary();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...