iPhone在使用Corona开发的应用中无法接收到Pushwoosh推送

优秀的开发者们:

我使用Corona SDK开发了一个项目,用于实现推送通知的Android和iPhone版本。

在我的Corona SDK项目中,我使用了GCM服务器来支持Android版本,使用了Pushwoosh服务器来支持iPhone版本。

Android版本现在运行良好。但是iPhone版本只能在未运行的情况下接收到推送通知,无法在运行的应用中接收Pushwoosh的推送通知。

我已经寻找解决这个问题的方法超过两天,但是在Corona SDK的项目中我找不到任何解决方法。

我在main.lua中分享了注册/接收推送通知的代码。

-------------------- main.lua --------------------

if ( system.getInfo("platformName") == "iPhone OS" ) then
  notifications.registerForPushNotifications()
end

local function notificationListener( event )
  if ( event.type == "remoteRegistration" ) then

    local deviceToken = myData.tokenID
    local deviceType = 1  --默认为iOS

    if ( system.getInfo("platformName") == "Android" ) then
        deviceType = 3
    end

    if(deviceType == 1) then
      local PW_APPLICATION = "XXXXX-XXXXX"  --在Pushwoosh中使用您的应用ID
      local PW_URL = "https://cp.pushwoosh.com/json/1.3/registerDevice"

      local function networkListener( event )
          if ( event.isError ) then
              --出现错误
              native.showAlert( "Notification Registration Failed", "An Error Contacting the Server has Occurred.", { "OK" } )
          else
          --注册成功!
              print( "-----------------------------PushWoosh registration successful", system.getInfo("deviceID") )
          end
      end

      local commands_json =
      {
          ["request"] = {
              ["application"] = PW_APPLICATION,
              ["push_token"] = deviceToken,
              ["language"] = "en",  --或: system.getPreference( "ui", "language" ),
              ["hwid"] = system.getInfo("deviceID"),
              ["timezone"] = 3600,  --偏移量(以秒为单位)
              ["device_type"] = deviceType
          }
      }

      local post_body = json.encode( commands_json )

      local headers = {}
      headers["Content-Type"] = "application/json"
      headers["Accept-Language"] = "en-US"

      local params = {}
      params.headers = headers
      params.body = post_body

      network.request ( PW_URL, "POST", networkListener, params )
    end
elseif ( event.type == "remote" ) then

    if ( system.getInfo("platformName") == "Android" ) then
      native.showAlert(event.alert.."on android")
    else
      native.showAlert(event.alert.."on iphone")
    end
    print("////////////////////////////////////// 我收到了推送通知("..event.alert.."). ////////////////////////////")
end
end

local launchArgs = ...

if ( launchArgs and launchArgs.notification ) then
    notificationListener( launchArgs.notification )
end

Runtime:addEventListener( "notification", notificationListener )

期待能听到好的解决方案以在iPhone上接收正在运行应用的推送通知。

我该如何在Corona SDK项目中实现代码或项目设置?

敬礼, Lion

点赞