DeviceUtil.lua 15.2 KB
module("DeviceUtil", package.seeall)

--android获取uid
function getUniqueKey()
    local uid = "1fyiqznjeuysjzue"
    local ok
    
    if device.platform == "ios" then
        
    elseif device.platform == "android" then
        if app.isVerGE120 then
            ok, uid = luaj.callStaticMethod("com/gd/DeviceHelper", "getUniqueKey", {}, "()Ljava/lang/String;")
        end
    else
        
    end
    
    return uid
end

function DeviceUtil.getUserID()  --调用android的方法实现
    local ok,uid=false,"";
    local targetPlatform = cc.Application:getInstance():getTargetPlatform();
    if targetPlatform == cc.PLATFORM_OS_ANDROID then
        local luaj = require "cocos.cocos2d.luaj" --引入luaj
        --包名/类名  这个可以在对应的android工程的manifest中得到
        local className="org/cocos2dx/lua/AppActivity";
        local args = {};
        local sigs = "()Ljava/lang/String;" --传入string参数,无返回值

        --luaj 调用 Java 方法时,可能会出现各种错误,因此 luaj 提供了一种机制让 Lua 调用代码可以确定 Java 方法是否成功调用。
        --luaj.callStaticMethod() 会返回两个值
        --当成功时,第一个值为 true,第二个值是 Java 方法的返回值(如果有)
        --当失败时,第一个值为 false,第二个值是错误代码
        ok,uid = luaj.callStaticMethod(className,"getUserID",args,sigs)
        if not ok then
            print("getUserID error:"..uid);
        end
     end
     return uid;
end

function DeviceUtil.getAppName()  --调用android的方法实现
    local ok,appName=false,"全家棋牌";
    local targetPlatform = cc.Application:getInstance():getTargetPlatform();
    if targetPlatform == cc.PLATFORM_OS_ANDROID then
        local luaj = require "cocos.cocos2d.luaj" --引入luaj
        --包名/类名  这个可以在对应的android工程的manifest中得到
        local className="org/cocos2dx/lua/AppActivity";
        local args = {};
        local sigs = "()Ljava/lang/String;" --传入string参数,无返回值

        --luaj 调用 Java 方法时,可能会出现各种错误,因此 luaj 提供了一种机制让 Lua 调用代码可以确定 Java 方法是否成功调用。
        --luaj.callStaticMethod() 会返回两个值
        --当成功时,第一个值为 true,第二个值是 Java 方法的返回值(如果有)
        --当失败时,第一个值为 false,第二个值是错误代码
        ok,appName = luaj.callStaticMethod(className,"getAppName",args,sigs)
        if not ok then
            print("getAppName error:"..uid);
        end
     end
     return appName;
end

function DeviceUtil.getDeviceId()  --调用android的方法实现
    local ok,uid=false,"";
    local targetPlatform = cc.Application:getInstance():getTargetPlatform();
    if targetPlatform == cc.PLATFORM_OS_ANDROID then
        local luaj = require "cocos.cocos2d.luaj" --引入luaj
        --包名/类名  这个可以在对应的android工程的manifest中得到
        local className="org/cocos2dx/lua/AppActivity";
        local args = {};
        local sigs = "()Ljava/lang/String;" --传入string参数,无返回值

        --luaj 调用 Java 方法时,可能会出现各种错误,因此 luaj 提供了一种机制让 Lua 调用代码可以确定 Java 方法是否成功调用。
        --luaj.callStaticMethod() 会返回两个值
        --当成功时,第一个值为 true,第二个值是 Java 方法的返回值(如果有)
        --当失败时,第一个值为 false,第二个值是错误代码
        ok,uid = luaj.callStaticMethod(className,"getDeviceId",args,sigs)
        if not ok then
            print("getDeviceId error:"..uid);
        end
     end
     return uid;
end

function DeviceUtil.getAppVersionName()  --调用android的方法实现
    local ok,ver_name=false,"4.3";
    local targetPlatform = cc.Application:getInstance():getTargetPlatform();
    if targetPlatform == cc.PLATFORM_OS_ANDROID then
        local luaj = require "cocos.cocos2d.luaj" --引入luaj
        --包名/类名  这个可以在对应的android工程的manifest中得到
        local className="org/cocos2dx/lua/AppActivity";
        local args = {};
        local sigs = "()Ljava/lang/String;" --传入string参数,无返回值

        --luaj 调用 Java 方法时,可能会出现各种错误,因此 luaj 提供了一种机制让 Lua 调用代码可以确定 Java 方法是否成功调用。
        --luaj.callStaticMethod() 会返回两个值
        --当成功时,第一个值为 true,第二个值是 Java 方法的返回值(如果有)
        --当失败时,第一个值为 false,第二个值是错误代码
        ok,ver_name = luaj.callStaticMethod(className,"getAppVersionName",args,sigs)
        if not ok then
            print("getAppVersionName error:"..ver_name);
        end
    else
        
    end
    return ver_name;
end

function DeviceUtil.initSdk(params,callbackLua)  --调用android的方法实现
    local targetPlatform = cc.Application:getInstance():getTargetPlatform()
    if targetPlatform ~= cc.PLATFORM_OS_WINDOWS and targetPlatform ~= cc.PLATFORM_OS_MAC then
        local luaj = require "cocos.cocos2d.luaj" --引入luaj
        --包名/类名  这个可以在对应的android工程的manifest中得到
        local className="org/cocos2dx/lua/AppActivity";
        local args = { tostring(params),callbackLua};
        local sigs = "(Ljava/lang/String;I)V" --传入string参数,无返回值

        --luaj 调用 Java 方法时,可能会出现各种错误,因此 luaj 提供了一种机制让 Lua 调用代码可以确定 Java 方法是否成功调用。
        --luaj.callStaticMethod() 会返回两个值
        --当成功时,第一个值为 true,第二个值是 Java 方法的返回值(如果有)
        --当失败时,第一个值为 false,第二个值是错误代码
        local ok,ret = luaj.callStaticMethod(className,"initSdk",args,sigs)
        if not ok then
            print("initSdk error:"..ret)
        end
     end
end

function DeviceUtil.sendBilling(params,callbackLua)  --调用android的方法实现
    local targetPlatform = cc.Application:getInstance():getTargetPlatform()
    if targetPlatform ~= cc.PLATFORM_OS_WINDOWS and targetPlatform ~= cc.PLATFORM_OS_MAC then
        local luaj = require "cocos.cocos2d.luaj" --引入luaj
        --包名/类名  这个可以在对应的android工程的manifest中得到
        local className="org/cocos2dx/lua/AppActivity";
        local args = { tostring(params),callbackLua};
        local sigs = "(Ljava/lang/String;I)V" --传入string参数,无返回值

        --luaj 调用 Java 方法时,可能会出现各种错误,因此 luaj 提供了一种机制让 Lua 调用代码可以确定 Java 方法是否成功调用。
        --luaj.callStaticMethod() 会返回两个值
        --当成功时,第一个值为 true,第二个值是 Java 方法的返回值(如果有)
        --当失败时,第一个值为 false,第二个值是错误代码
        local ok,ret = luaj.callStaticMethod(className,"sendBilling",args,sigs)
        if not ok then
            print("sendBilling error:"..ret)
        end
    else
        if callbackLua then
            callbackLua("no");
        end
    end
end

function DeviceUtil.payCyrcle(params,callbackLua)  --调用android的方法实现
    local targetPlatform = cc.Application:getInstance():getTargetPlatform()
    if targetPlatform == cc.PLATFORM_OS_ANDROID then
        local luaj = require "cocos.cocos2d.luaj" --引入luaj
        --包名/类名  这个可以在对应的android工程的manifest中得到
        local className="org/cocos2dx/lua/AppActivity";
        local args = { tostring(params),callbackLua};
        local sigs = "(Ljava/lang/String;I)V" --传入string参数,无返回值

        --luaj 调用 Java 方法时,可能会出现各种错误,因此 luaj 提供了一种机制让 Lua 调用代码可以确定 Java 方法是否成功调用。
        --luaj.callStaticMethod() 会返回两个值
        --当成功时,第一个值为 true,第二个值是 Java 方法的返回值(如果有)
        --当失败时,第一个值为 false,第二个值是错误代码
        local ok,ret = luaj.callStaticMethod(className,"payCyrcle",args,sigs)
        if not ok then
            print("payCyrcle error:"..ret)
        end
     end
end

function DeviceUtil.sendHttpRequest(params,callbackLua)  --调用android的方法实现
    local targetPlatform = cc.Application:getInstance():getTargetPlatform()
    if targetPlatform == cc.PLATFORM_OS_WINDOWS or targetPlatform == cc.PLATFORM_OS_ANDROID then
        local luaj = require "cocos.cocos2d.luaj" --引入luaj
        --包名/类名  这个可以在对应的android工程的manifest中得到
        local className="org/cocos2dx/lua/AppActivity";
        local args = { tostring(params),callbackLua};
        local sigs = "(Ljava/lang/String;I)V" --传入string参数,无返回值

        --luaj 调用 Java 方法时,可能会出现各种错误,因此 luaj 提供了一种机制让 Lua 调用代码可以确定 Java 方法是否成功调用。
        --luaj.callStaticMethod() 会返回两个值
        --当成功时,第一个值为 true,第二个值是 Java 方法的返回值(如果有)
        --当失败时,第一个值为 false,第二个值是错误代码
        local ok,ret = luaj.callStaticMethod(className,"sendHttpRequest",args,sigs)
        if not ok then
            print("sendHttpRequest error:"..ret)
        end
    end
end

function DeviceUtil.downloadApk(params,callbackLua)  --调用android的方法实现
    local targetPlatform = cc.Application:getInstance():getTargetPlatform()
    if targetPlatform == cc.PLATFORM_OS_WINDOWS or targetPlatform == cc.PLATFORM_OS_ANDROID then
        local luaj = require "cocos.cocos2d.luaj" --引入luaj
        --包名/类名  这个可以在对应的android工程的manifest中得到
        local className="org/cocos2dx/lua/AppActivity";
        local args = { tostring(params),callbackLua};
        local sigs = "(Ljava/lang/String;I)V" --传入string参数,无返回值

        --luaj 调用 Java 方法时,可能会出现各种错误,因此 luaj 提供了一种机制让 Lua 调用代码可以确定 Java 方法是否成功调用。
        --luaj.callStaticMethod() 会返回两个值
        --当成功时,第一个值为 true,第二个值是 Java 方法的返回值(如果有)
        --当失败时,第一个值为 false,第二个值是错误代码
        local ok,ret = luaj.callStaticMethod(className,"downloadApk",args,sigs)
        if not ok then
            print("downloadApk error:"..ret)
        end
    end
end

function DeviceUtil.SendAuthWechatMobile(params,callbackLua)  --调用android的方法实现
    local targetPlatform = cc.Application:getInstance():getTargetPlatform()
    if targetPlatform == cc.PLATFORM_OS_WINDOWS or targetPlatform == cc.PLATFORM_OS_ANDROID then
        local luaj = require "cocos.cocos2d.luaj" --引入luaj
        --包名/类名  这个可以在对应的android工程的manifest中得到
        local className="org/cocos2dx/lua/AppActivity";
        local args = { tostring(params),callbackLua};
        local sigs = "(Ljava/lang/String;I)V" --传入string参数,无返回值

        --luaj 调用 Java 方法时,可能会出现各种错误,因此 luaj 提供了一种机制让 Lua 调用代码可以确定 Java 方法是否成功调用。
        --luaj.callStaticMethod() 会返回两个值
        --当成功时,第一个值为 true,第二个值是 Java 方法的返回值(如果有)
        --当失败时,第一个值为 false,第二个值是错误代码
        local ok,ret = luaj.callStaticMethod(className,"SendAuthWechatMobile",args,sigs)
        if not ok then
            print("SendAuthWechatMobile error:"..ret)
        end
    end
end

function DeviceUtil.ShareWxWebpage(params,callbackLua)  --调用android的方法实现
    local targetPlatform = cc.Application:getInstance():getTargetPlatform()
    if targetPlatform == cc.PLATFORM_OS_WINDOWS or targetPlatform == cc.PLATFORM_OS_ANDROID then
        local luaj = require "cocos.cocos2d.luaj" --引入luaj
        --包名/类名  这个可以在对应的android工程的manifest中得到
        local className="org/cocos2dx/lua/AppActivity";
        local args = { tostring(params),callbackLua};
        local sigs = "(Ljava/lang/String;I)V" --传入string参数,无返回值

        --luaj 调用 Java 方法时,可能会出现各种错误,因此 luaj 提供了一种机制让 Lua 调用代码可以确定 Java 方法是否成功调用。
        --luaj.callStaticMethod() 会返回两个值
        --当成功时,第一个值为 true,第二个值是 Java 方法的返回值(如果有)
        --当失败时,第一个值为 false,第二个值是错误代码
        local ok,ret = luaj.callStaticMethod(className,"ShareWxWebpage",args,sigs)
        if not ok then
            print("ShareWxWebpage error:"..ret)
        end
    end
end

function DeviceUtil.ShareWxImage(params,callbackLua)  --调用android的方法实现
    local targetPlatform = cc.Application:getInstance():getTargetPlatform()
    if targetPlatform == cc.PLATFORM_OS_WINDOWS or targetPlatform == cc.PLATFORM_OS_ANDROID then
        local luaj = require "cocos.cocos2d.luaj" --引入luaj
        --包名/类名  这个可以在对应的android工程的manifest中得到
        local className="org/cocos2dx/lua/AppActivity";
        local args = { tostring(params),callbackLua};
        local sigs = "(Ljava/lang/String;I)V" --传入string参数,无返回值

        --luaj 调用 Java 方法时,可能会出现各种错误,因此 luaj 提供了一种机制让 Lua 调用代码可以确定 Java 方法是否成功调用。
        --luaj.callStaticMethod() 会返回两个值
        --当成功时,第一个值为 true,第二个值是 Java 方法的返回值(如果有)
        --当失败时,第一个值为 false,第二个值是错误代码
        local ok,ret = luaj.callStaticMethod(className,"ShareWxImage",args,sigs)
        if not ok then
            print("ShareWxImage error:"..ret)
        end
    end
end

function DeviceUtil.restartApplication(params,callbackLua)  --调用android的方法实现
    local targetPlatform = cc.Application:getInstance():getTargetPlatform()
    if targetPlatform == cc.PLATFORM_OS_WINDOWS or targetPlatform == cc.PLATFORM_OS_ANDROID then
        local luaj = require "cocos.cocos2d.luaj" --引入luaj
        --包名/类名  这个可以在对应的android工程的manifest中得到
        local className="org/cocos2dx/lua/AppActivity";
        local args = { tostring(params),callbackLua};
        local sigs = "(Ljava/lang/String;I)V" --传入string参数,无返回值

        --luaj 调用 Java 方法时,可能会出现各种错误,因此 luaj 提供了一种机制让 Lua 调用代码可以确定 Java 方法是否成功调用。
        --luaj.callStaticMethod() 会返回两个值
        --当成功时,第一个值为 true,第二个值是 Java 方法的返回值(如果有)
        --当失败时,第一个值为 false,第二个值是错误代码
        local ok,ret = luaj.callStaticMethod(className,"restartApplication",args,sigs)
        if not ok then
            print("restartApplication error:"..ret)
        end
    end
end