因此,我有一个Chrome扩展程序,该扩展程序设置为可免费试用一次付款。

当我使用Chrome帐户API(chrome.identity.getAuthToken)登录时,现在可以看到以下数据:

{
    accessLevel: "FREE_TRIAL"
    createdTime: "1515085366930"
    itemId: "omelijcoklxxokoeobkpepozpjpbakoeo"
    kind: "chromewebstore#userLicense"
    maxAgeSecs: "2"
    result: true
}


上面的JSON来自此调用的解析响应:

   const url = 'https://www.googleapis.com/chromewebstore/v1.1/userlicenses/' + chrome.runtime.id;
   const req = new XMLHttpRequest();
   req.open('GET', url);
   req.setRequestHeader('Authorization', 'Bearer ' + token);
   req.onreadystatechange = function () {
     if (req.readyState == 4) {
       const license = JSON.parse(req.responseText);
       self.license = license;
     }

   };

   req.send();


我的问题是-我怎么知道免费试用期结束?看来我可以通过编程确定免费试用期。

有没有建议的免费试用期控制方法?

我是否只是将createdTime与Date.now()值进行比较,然后查看经过的时间?向用户显示他们正在免费试用并显示剩余时间的一种好方法是什么?

最佳答案

我怎么知道免费试用期结束?我是否只是将createdTime与Date.now()值进行比较,然后查看经过的时间?


是。如果Date.now() - createdTime大于所需的免费试用期,则该期限已到期。


  有没有建议的免费试用期控制方法?


该文档包含一些示例代码。
https://developer.chrome.com/webstore/one_time_payments#trial-limited-time

var TRIAL_PERIOD_DAYS设置为您想要的时间。
var license设置为您获得的json,文档代码应按原样工作。


  向用户显示他们正在免费试用并显示剩余时间的一种好方法是什么?


var license是在后台脚本中设置的。您需要将其传递给您的内容脚本。为此,您可以使用chrome.runtime.sendMessage()从内容脚本将消息发送到后台脚本。
然后,从后台脚本使用sendResponse(license)发送答案。
现在,您在内容脚本中有了该变量。用它来检查审判是否仍然有效,然后操纵dom,插入警告消息和剩余时间。

请注意,用户必须登录chrome浏览器才能使扩展名获得许可证。如果他不是,则必须决定是否要允许或拒绝该扩展程序的功能。

关于javascript - 确定何时免费试用Chrome扩展程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48473151/

10-09 18:48