store.init()

类型 函数
返回值
修订版 发行 2024.3703 版
关键字 Google、IAP、应用内购买、init
另请参见 store.isActive
store.*

概览

在进行其他 Google IAP 调用之前,必须进行此调用。此调用会准备 Google IAP 库,使您能够检测到监听程序接收到的 storeTransaction 事件,此监听程序定义为 listener

重要

此方法还会将 init 事件派发到指定监听程序(用于 storeTransaction 事件的监听程序)。在这一点上,除非发生错误,否则 store.isActive 将为 true

重复说明,您必须等到派发 init 事件后,再尝试 加载产品还原之前购买的商品消费商品等。

请注意,初始化是异步完成的,因为它可能需要进行网络调用,这会根据服务器负载和网络延迟花费可变时间。

语法

store.init( listener )
listener (必需)

Listener. 将处理 storeTransaction 事件的监听程序。请注意,此监听程序还将处理 init 事件,如上所述。

示例

local store = require( "plugin.google.iap.billing" )
local json = require( "json" )

local function transactionListener( event )

    -- Google IAP initialization event
    if ( event.name == "init" ) then

        if not ( event.transaction.isError ) then
            -- Perform steps to enable IAP, load products, etc.

        else  -- Unsuccessful initialization; output error details
            print( event.transaction.errorType )
            print( event.transaction.errorString )
        end

    -- Store transaction event
    elseif ( event.name == "storeTransaction" ) then

        if not ( event.transaction.state == "failed" ) then  -- Successful transaction
            print( json.prettify( event ) )
            print( "event.transaction: " .. json.prettify( event.transaction ) )

        else  -- Unsuccessful transaction; output error details
            print( event.transaction.errorType )
            print( event.transaction.errorString )
        end
    end
end

-- Initialize Google IAP
store.init( transactionListener )