In qualità di Affiliato Amazon, iSpazio riceve una commissione dagli acquisti idonei senza alcun costo per voi. (info).
Durante la presentazione dell’HomePod mini, Apple ha introdotto una nuova funzionalità chiamata “Intercom” che funziona su tutti i dispositivi Apple ad eccezione del Mac.
Advertising
Intercom consentirà ai membri della famiglia di comunicare tra loro ovunque si trovino in casa, con la possibilità di inviare e ricevere messaggi vocali tramite gli altoparlanti HomePod. Se un membro della famiglia è in giardino o fuori casa, può comunque usare Intercom sul proprio iPhone, iPad , Apple Watch e persino CarPlay.
Il messaggio verrà riprodotto automaticamente non solo su tutti gli HomePod presenti in casa, ma verrà anche inviata una notifica sui dispositivi presenti nel gruppo In Famiglia (iPhone, iPad, Apple Watch) e sarà persino riprodotto sugli AirPods.
La capacità di Apple di sfruttare il suo intero ecosistema per rendere più utile una funzionalità come Intercom potrebbe rivelarsi un vantaggio competitivo nello spazio degli altoparlanti intelligenti rispetto ai leader di mercato come Amazon e Google, concorrenti che già offrono funzionalità simili a Intercom sui loro altoparlanti e display intelligenti.
Sfortunatamente, il nuovo HomePod mini non è al momento disponibili in Italia e non sappiamo se verrà mia rilasciato nel nostro paese.
// Logica completa dello shortcode 'app'
function appstore_shortcode_logic($atts, $content = null) { // Attributi di default
$atts = shortcode_atts(array(
'id' => '',
'img' => '',
'nome' => '',
'sottotitolo' => '',
'prezzo' => '',
'link' => '',
'store' => 'App Store',
'template' => '',
'inapp' => '',
'background' => '',
'link_icon' => '',
), $atts, 'card');
// Verifica del valore dell'attributo 'stile'
$template_class = !empty($atts['template']) ? sanitize_html_class($atts['template']) : '';
// Verifica se il file JSON della cache esiste
$cache_dir = '/srv/www/ispazio.net/www/wp-content/plugins/appstore_ispazio/app_cache/';
$cache_file = $cache_dir . "app_" . sanitize_key($atts['id']) . ".json";
// Determina se la cache è valida: JSON esiste, non scaduto E icona principale esiste sul disco
$_app_id_check = sanitize_key($atts['id']);
$_img_main_path = $cache_dir . "icon250_" . $_app_id_check . ".jpg";
$_cache_valid = file_exists($cache_file) && filesize($cache_file) > 0
&& time() - filemtime($cache_file) < 31557600
&& file_exists($_img_main_path);
if ($_cache_valid) {
$json = file_get_contents($cache_file);
} else {
// Interroga l'API di App Store e scarica il JSON utilizzando cURL
$itunes_api_base = "https://itunes.apple.com/lookup?id=" . sanitize_key($atts['id']);
$country_list = ['IT', 'US']; // puoi aggiungere altri paesi se vuoi
$json = '';
$data = [];
foreach ($country_list as $country) {
$itunes_api_url = $itunes_api_base . "&country=" . $country;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $itunes_api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json'));
$json = curl_exec($ch);
curl_close($ch);
$data = json_decode($json, true);
if (!empty($data['results'])) {
break; // abbiamo trovato un risultato valido, fermiamo il ciclo
}
}
if (isset($data['results'][0]['artworkUrl100'])) {
$original_image_url = $data['results'][0]['artworkUrl100'];
$new_image_url = str_replace('100x100bb.jpg', '250x250bb.jpg', $original_image_url);
// Scarica e salva l'immagine dell'artwork sul tuo server
$image_id = sanitize_key($atts['id']);
$image_path = $cache_dir . "icon250_" . $image_id . ".jpg";
file_put_contents($image_path, file_get_contents($new_image_url));
if (function_exists('ispazio_convert_to_modern')) ispazio_convert_to_modern($image_path);
// Modifica il JSON con l'URL dell'immagine dell'artwork sul tuo server
$data['results'][0]['artworkUrl100'] = "https://www.ispazio.net/wp-content/plugins/appstore_ispazio/app_cache/icon250_" . $image_id . ".jpg";
// Crea anche versione 140px per template mini (retina 2x per 70x70)
$icon140_path = $cache_dir . "icon140_" . $image_id . ".jpg";
if ( ! file_exists( $icon140_path ) && function_exists( 'imagecreatefromjpeg' ) ) {
$src_img = @imagecreatefromjpeg( $image_path );
if ( $src_img ) {
$dst_img = imagecreatetruecolor( 140, 140 );
imagecopyresampled( $dst_img, $src_img, 0, 0, 0, 0, 140, 140, imagesx( $src_img ), imagesy( $src_img ) );
imagejpeg( $dst_img, $icon140_path, 85 );
imagedestroy( $src_img );
imagedestroy( $dst_img );
if (function_exists('ispazio_convert_to_modern')) ispazio_convert_to_modern($icon140_path);
}
}
// Sostituisci anche gli URL delle prime 4 immagini degli screenshot
if (isset($data['results'][0]['screenshotUrls'])) {
$screenshotUrls = $data['results'][0]['screenshotUrls'];
$screenshotUrlsOnServer = array();
for ($i = 0; $i < min(count($screenshotUrls), 4); $i++) {
$screenshotUrl = $screenshotUrls[$i];
$screenshotFilename = basename($screenshotUrl);
$screenshotSavePath = $cache_dir . "screenshot_" . $image_id . "_" . $i . ".jpg";
// Scarica e salva l'immagine dello screenshot sul tuo server
file_put_contents($screenshotSavePath, file_get_contents($screenshotUrl));
if (function_exists('ispazio_convert_to_modern')) ispazio_convert_to_modern($screenshotSavePath);
// Modifica il JSON con l'URL dell'immagine dello screenshot sul tuo server
$screenshotUrlsOnServer[] = "https://www.ispazio.net/wp-content/plugins/appstore_ispazio/app_cache/screenshot_" . $image_id . "_" . $i . ".jpg";
}
// Aggiorna il JSON con gli URL delle immagini degli screenshot sul tuo server
$data['results'][0]['screenshotUrls'] = $screenshotUrlsOnServer;
}
}
// Salva il JSON nella cache solo se non è vuoto
if (!empty($json)) {
file_put_contents($cache_file, json_encode($data));
}
}
// Decodifica il JSON
$data = json_decode($json, true);
// Se il "nome" non è specificato nell'attributo, usa il trackName dal JSON
$nome = isset($atts['nome']) && !empty($atts['nome']) ? $atts['nome'] : ($data['results'][0]['trackName'] ?? 'Scarica da App Store');
// Se il "sottotitolo" non è specificato nell'attributo, usa artistName dal JSON
$sottotitolo = isset($atts['sottotitolo']) && !empty($atts['sottotitolo']) ? $atts['sottotitolo'] : ($data['results'][0]['artistName'] ?? '');
// Se il "prezzo" non è specificato nell'attributo, usa il formattedPrice dal JSON
$formattedPrice = !empty($data['results'][0]['formattedPrice']) ? $data['results'][0]['formattedPrice'] : null; $prezzo = !empty($atts['prezzo']) ? $atts['prezzo'] : (!empty($formattedPrice) ? $formattedPrice : (!empty(trim($content)) ? trim($content) : 'OTTIENI'));
// Se l'URL dell'immagine non è specificato nell'attributo, usa quello dal JSON
$hide_image_class = '';
$card_body_style = '';
$container_style = '';
$container_extra_class = '';
if (isset($atts['img']) && trim($atts['img']) === 'scontiamolo') {
$img = 'https://www.ispazio.net/wp-content/plugins/appstore_ispazio/app_cache/icon250_1506946624.jpg';
$container_extra_class = 'scontiamolo-mode';
} elseif (!empty($atts['img'])) {
$img = $atts['img'];
} else {
$img = $data['results'][0]['artworkUrl100'] ?? "https://www.ispazio.net/wp-content/uploads/2022/10/appstore_icon.png";
}
// Per template mini usa icon140 (70x70 retina) invece di icon250
if ( $template_class === 'mini' ) {
$img = str_replace( 'icon250_', 'icon140_', $img );
}
// Genera il link dell'app su App Store
$link = !empty($atts['link']) ? $atts['link'] : "https://apps.apple.com/it/app/id" . $atts['id'] . "?platform=iphone";
$link_icon = !empty($atts['link_icon']) ? $atts['link_icon'] : $link;
// HTML immagine con o senza effetto rotazione (in base a template)
$img_html = '';
if (!empty($img)) {
if ($template_class === 'striscia') {
$img_html = '
';
} else {
$img_html = '
';
}
}
// Costruisci l'HTML finale
// Determina il contenuto del titolo in base al template
$title_content = '';
if ($template_class === 'blackfriday') {
$title_content = '
';
} else {
$title_content = esc_html($nome);
}
// offertediprimavera usa lo stesso layout CSS di blackfriday
$css_class = $template_class;
if ($template_class === 'offertediprimavera') {
$css_class = 'blackfriday offertediprimavera';
}
$output = '
';
return $output;
}
Sai che siamo anche su Telegram? Unisciti al nostro canale iSpazio per ricevere le notifiche oppure Apple Italia per chattare con altri utenti. Scopri i migliori prodotti Tech in sconto su Amazon con il nostro canale OFFERTE iSpazio.
Accedi per lasciare un commento:
0 Commenti