Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从角度调用Javascript函数_Javascript_Angular_Typescript - Fatal编程技术网

从角度调用Javascript函数

从角度调用Javascript函数,javascript,angular,typescript,Javascript,Angular,Typescript,我正在尝试为我的Angular项目配置推送通知。我试过使用AngularFire模块,但我遇到了一些问题-。所以我想到了使用普通的Javascript代码。因此,我创建了Javascript函数,它将显示通知权限请求对话框,并将令牌写入控制台。我可以从角度调用函数。但是,我不需要将令牌写入控制台,而是需要将令牌保存在数据库中,以便将令牌与应用程序的用户关联,并向特定用户发送通知。我找不到任何方法来做这件事。下面是我的Javascript函数,它显示浏览器通知提示并将令牌写入控制台 var req

我正在尝试为我的Angular项目配置推送通知。我试过使用
AngularFire
模块,但我遇到了一些问题-。所以我想到了使用普通的Javascript代码。因此,我创建了Javascript函数,它将显示通知权限请求对话框,并将令牌写入控制台。我可以从角度调用函数。但是,我不需要将令牌写入控制台,而是需要将令牌保存在数据库中,以便将令牌与应用程序的用户关联,并向特定用户发送通知。我找不到任何方法来做这件事。下面是我的Javascript函数,它显示浏览器通知提示并将令牌写入控制台

var requestForPermission = function () {
  messaging.requestPermission().then(m => {
    messaging.getToken().then(t => {
      console.log(t);
    });
  });
}
在typescript中,我创建了这样一个函数

declare function requestForPermission(): any;
最后从typescript函数调用这个函数

toggleBrowserNotification() {
  requestForPermission();
}

我试图返回令牌、消息对象等,但我不知道如何使用Typescript中的这些对象。

如果我理解您的问题,您可以尝试此方法

JS

var requestForPermission = async function () {
    let m = await messaging.requestPermission();
    return await messaging.getToken();
}
toggleBrowserNotification() {
   requestForPermission()
       .then(t => this.myTokenSaverService.savetoken(t)) //All succesful
       .catch(e=> console.log(e)); //Error getting permission or token
}
TS

var requestForPermission = async function () {
    let m = await messaging.requestPermission();
    return await messaging.getToken();
}
toggleBrowserNotification() {
   requestForPermission()
       .then(t => this.myTokenSaverService.savetoken(t)) //All succesful
       .catch(e=> console.log(e)); //Error getting permission or token
}

关于,

您的数据库是什么意思?你在哪里需要代币?不清楚。是的,我需要将通知令牌(注册id)存储到我的应用程序数据库中,以便我可以将其与用户关联,并向特定用户发送通知。前面是否有保存该令牌的代码?该代码是否与“toggleBrowserNotification”在同一个类中?问题是我将令牌保存到数据库的代码是Angular typescript。我需要将令牌从Javascript获取到Typescript/Angular,以便将令牌保存到数据库中。