如何保护我的应用免受共享影响?

时间:2016-10-05 15:23:44

标签: android cordova hybrid-mobile-app

我是一名cordova / phonegap android开发者,目前我有一些免费的应用程序,现在我计划在playstore中发布付费应用程序。但只有一个人可以购买并分享给他/她的朋友,所以他们可以无偿使用。我该如何保护它?我在互联网上提到很多东西,但我没有任何解决方案。


我发现了以下cordova插件 https://github.com/mobilino/Phonegap-android-license-plugin。但我得到了签名随机值,没有人与LICENSING& IN-APP BILLING键。或者我该如何使用这个插件。

AndroidLicensePlugin.check(
    function(data) { alert( JSON.stringify(data));},
    function(errorString) { alert("error: " + errorString);}
    );

1 个答案:

答案 0 :(得分:0)

Merbin,不确定你是否找到了答案,但这就是我所做的。

当我想分享我正在销售的Android应用时,我会转到Google Play Dev并创建促销代码列表,并向朋友提供其中一个促销代码。

以下是我在同一个插件中使用的代码。

//---------------------------
//---------------------------
function LicCheck() {

    //Running HTTP vs. Native
    try {
        //Default none or error
        setLicKeyValue(Number(99));

        AndroidLicensePlugin.check(
            function (data) {
                licProcessJSON(data);
            },
            function (errorString) {
                console.log('LicCheck() ERROR ' + errorString);
                setLicKeyValue(99);
            }
        );
    }
    catch (err) {
        setLicKeyValue(99);
        console.log('LicCheck() - Error - default set to 99 (try later) ' + err)
    }
}
//---------------------------
//---------------------------
function licProcessJSON(data) {
    var appLicResponseCode = Number(1); //0:owns, 1:do not own

    //data = {
    //    responseCode: 0,
    //    signedData: "0|-123456798|de.mobilino....", // 6 fields of | delimitered data
    //    signature: "" // the BASE64 encoded signature from Google
    //};

    console.log('data.responseCode ' + data.responseCode);

    //They own the app
    if (data.responseCode === 0) {
        console.log('licProcessJSON() - Onwer True');
        setLicKeyValue(0);
        return;
    }

    //They do not own the app
    if (data.responseCode === 1) {
        console.log('licProcessJSON() - Onwer False');
        setLicKeyValue(1);
        return;
    }

    console.log('licProcessJSON() - No Data?');
    setLicKeyValue(99);
}
//---------------------------------
//---------------------------------
function setLicKeyValue(value) {
    localStorage.setItem(_licIndicator, Number(value));
}