このメソッドを使用してパスを生成します。
パブリック関数 setJSON($JSON) { if(json_decode($JSON) !== false) { $this->JSON = $JSON; true を返します。 } $this->sError = 'これは JSON 文字列ではありません。'; false を返します。 }このメソッドを呼び出して、パスバイを生成します。
$pass->setJSON('{ "passTypeIdentifier": "'.$passTypeID.'", "フォーマットバージョン": 1, ………… "バーコード": { "altText" : "'.$alt.'", "フォーマット": "PKBarcodeFormatPDF417", "メッセージ": "会員カード", "messageEncoding": "iso-8859-1", "changeMessage": "このパスには altText %@ が含まれるようになりました!" }、 「場所」:[ { 「経度」:104.89529371261597、 「緯度」:11.576150037278605、 "relevantText": "CamMob (dis. 1%)" }、 ……………… ] }');しかし、今はそれらの場所を静的に書き込むのではなく、次の方法でデータベースからそれらのデータを取得します。
$query5 = mysql_query("select * from company");
while ($row5 = mysql_fetch_array($query5)){
$companyName = $row5['relevantTextName'];
$discount = $row5['relevantTextDiscount'];
$long = $row5['経度'];
$lat = $row5['緯度'];
$link = $row5['link'];
$location['locations'][] = array("longitute" => $long, "latitute" => $lat, "relevantText" => $companyName." (" . $discount. "%)" );
}
$jsonString = json_encode($location) ;
error_log("Locations: ".$jsonString,0);
$pass->setJSON($jsonString);
$pass->setJSON('{
"passTypeIdentifier": "'.$passTypeID.'",
"barcode": {
"altText" : "'.$alt.'",
"format" : "PKBarcodeFormatPDF417",
"message": "Member-Card",
"messageEncoding": "iso-8859-1",
"changeMessage" : "This pass now has altText %@ !"
}
}');</pre>
パスの更新をテストするとエラーは発生しませんが、以前のようにロック画面にパスが表示されません。したがって、これらの場所をまだパスに含めていないことを意味します。何を変更すればよいですか?メソッド setJSON の問題ですか?このような場合、これら 2 つの json を結合して一緒にするにはどうすればよいですか?