确定Chrome扩展程序免费试用何时结束

时间:2018-01-27 06:12:55

标签: javascript google-chrome google-chrome-extension licensing

所以我有一个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()值进行比较并查看已用时间?有什么好的方式向用户显示他们正在免费试用并显示剩余时间?

1 个答案:

答案 0 :(得分:1)

  

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

是的。如果$(document).ready(function(){ $('.add_cart').click(function(){ var product_name = $(this).data("productname"); var product_id = $(this).data("productid"); var product_price = $(this).closest('tr').find('.calActivitylPrice').text(); var quantity =1 //$('#clubmembershipcheckbox').val(); var changeToRemoveBTNSec = $(this).closest('tr').find('.display_table'); $.ajax({ url:"<?php echo base_url(); ?>Member_controller/addToCart", method:"POST", data:{product_id:product_id, product_name:product_name, product_price:product_price,quantity:quantity}, success:function(data) { var obj = JSON.parse(data); $(changeToRemoveBTNSec).html('<button type="button" name="remove" class="btn btn-danger btn-xs remove_inventory" id="'+obj.removebtn+'">Remove</button>'); // $('#subtotal_details').html('Total cost: INR ' +obj.subtotal); $('#totalDetails').html(obj.cart_total); $('#totalQty').html(obj.totalQty); } }); }); }); 大于期望的免费试用期,则该期限已到期。

  

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

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

Date.now() - createdTime设置为您想要的时间。 将var TRIAL_PERIOD_DAYS设置为您获得的json,文档代码应按原样工作。

  

有什么好方法可以向用户显示他们正在免费试用并显示剩余时间?

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

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