Apple Wallet:推送更新后,Pass不会自动更新

时间:2017-08-04 01:20:13

标签: apple-push-notifications passbook wallet passkit

我跟着Apple's instructions实施了更新Apple电子钱包通行证的选项。

我能够推送更新并在不同设备上成功接收,但我只能在执行“pull-to-update”后看到更新。使用“即时更新”后,会更新通行证上的字段,并在通知面板中显示更改消息,但屏幕上不会显示通知

我知道问题不在于设备或设备设置,因为我可以从其他来源的传递中获得自动更新。

我看到了一些相关问题:1 2 3 4

但那里提到的解决方案对我没用。

以下是最初生成时的传递示例以及对其进行更新后的传递:

之前

model pdetest_1

    parameter Real L=1;
    parameter Integer N=100;
    parameter Real dx=L/(N-1);
    parameter Real[N] x=array(i*dx for i in 0:N-1);

    Real u[N],ux[N];

initial equation

    for i in 1:N loop
      u[i]=0;
    end for;

equation
    u[1]=(time)^2;
    ux[1]=0;

    for i in 2:N loop
      u[i]=u[i-1]+dx*ux[i-1];
      der(u[i])=ux[i];
    end for;

end pdetest_1;

{
  "formatVersion": 1,
  "passTypeIdentifier": "pass.com.domain.discountCoupon",
  "serialNumber": "422",
  "teamIdentifier": "ABCDEFGHIJKLMNOP",
  "organizationName": "Company",
  "webServiceURL" : "https://example.com/wallet/webServiceURL.php",
  "authenticationToken" : "ABCDEFGHIJKLMNOP",
  "description": "Card",
  "logoText": "",
  "foregroundColor": "rgb(1, 1, 1)",
  "backgroundColor": "rgb(255, 255, 255)",
  "labelColor": "rgb(1, 1, 1)",
     "locations" : [
      {
        "longitude" : 0,
        "latitude" : 0
      }
    ],
  "storeCard": {
      "headerFields" : [

     ...

    ],
    "backFields": [
      {
        "label": "MOBILE TERMS:",
        "key": "mobileterms",
        "value" : "mobile terms"      
      },
      {
        "changeMessage": "%@",
        "label": " ",
        "value": "I will change this soon",
        "key": "fieldToChange"
      }
    ]
  }
}

2 个答案:

答案 0 :(得分:2)

您的第二次传递更改消息为空。它还需要包含%@

答案 1 :(得分:2)

发现问题:

在传递生成时缺少标题Last-Modified。这是iOS推送通知的要求。 添加后:header('Last-Modified: '.gmdate('D, d M Y H:i:s T'));

到我的传递生成代码,通知出现了。 为了使通知显示changeMessage文本,我按照@PassKit的回答添加了changeMessage(包括%@)在更新后我推送的新传递中。