CINXE.COM
Appleは自らがPWAを廃止した行為を「EUのせい」と責任転嫁しようとしているとの指摘 - GIGAZINE
<!DOCTYPE html> <html lang="ja"> <head prefix="og: https://ogp.me/ns# fb: https://ogp.me/ns/fb# article: https://ogp.me/ns/article#"> <link rel="dns-prefetch" href="https://i.gzn.jp"> <meta charset="utf-8"> <title>Appleは自らがPWAを廃止した行為を「EUのせい」と責任転嫁しようとしているとの指摘 - GIGAZINE</title> <meta property="og:site_name" content="GIGAZINE" /> <meta property="og:title" content="Appleは自らがPWAを廃止した行為を「EUのせい」と責任転嫁しようとしているとの指摘" /> <meta property="og:type" content="article" /> <meta property="og:url" content="https://gigazine.net/news/20240228-apple-pwa-dma/" /> <meta property="fb:pages" content="514043575350122" /> <meta name="robots" content="max-image-preview:large"> <script data-cfasync="false" async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script> <meta name="description" content="ウェブサイト上で利用できるサービスを端末上で再現する「プログレッシブウェブアプリ(PWA)」のサポートを、Appleは何の前触れもなく廃止しました。これはEUで施行されたデジタル市場法(DMA)に準拠するためだったのですが、そのようなAppleの言い分は言い訳に過ぎず、競合他社を蹴落とす狙いがあるとして、ChromeやEdgeの開発をリードしてきたアレックス・ラッセル氏が強く非難しています。" /> <meta property="og:image" content="https://i.gzn.jp/img/2024/02/28/apple-pwa-dma/00.jpg" /> <meta property="og:description" content="ウェブサイト上で利用できるサービスを端末上で再現する「プログレッシブウェブアプリ(PWA)」のサポートを、Appleは何の前触れもなく廃止しました。これはEUで施行されたデジタル市場法(DMA)に準拠するためだったのですが、そのようなAppleの言い分は言い訳に過ぎず、競合他社を蹴落とす狙いがあるとして、ChromeやEdgeの開発をリードしてきたアレックス・ラッセル氏が強く非難しています。" /> <meta property="twitter:account_id" content="9334242" /> <meta name="twitter:card" content="summary"> <meta name="twitter:site" content="@gigazine"> <meta name="robots" content="max-image-preview:large"> <link rel="preload" as="image" href="https://i.gzn.jp/img/2024/02/28/apple-pwa-dma/00_m.jpg" /> <link rel="canonical" href="https://gigazine.net/news/20240228-apple-pwa-dma/"> <link rel="alternate" hreflang="en" href="https://gigazine.net/gsc_news/en/20240228-apple-pwa-dma/" /> <script type="application/ld+json"> { "@context": "http://schema.org", "@type":"NewsArticle", "mainEntityOfPage":{ "@type":"WebPage", "@id":"https://gigazine.net/news/20240228-apple-pwa-dma/" }, "datePublished": "2024-02-28T07:00:00+09:00", "dateModified": "2024-02-28T18:47:41+09:00", "url":"https://gigazine.net/news/20240228-apple-pwa-dma/", "headline":"Appleは自らがPWAを廃止した行為を「EUのせい」と責任転嫁しようとしているとの指摘", "description":"ウェブサイト上で利用できるサービスを端末上で再現する「プログレッシブウェブアプリ(PWA)」のサポートを、Appleは何の前触れもなく廃止しました。これはEUで施行されたデジタル市場法(DMA)に準拠するためだったのですが、そのようなAppleの言い分は言い訳に過ぎず、競合他社を蹴落とす狙いがあるとして、ChromeやEdgeの開発をリードしてきたアレックス・ラッセル氏が強く非難しています。", "image":["https://i.gzn.jp/img/2024/02/28/apple-pwa-dma/00.jpg"], "author":"@GIGAZINE", "publisher":{ "@type": "Organization", "name": "GIGAZINE", "logo":{"@type": "ImageObject", "url":"https://i.gzn.jp/images/logo.png", "width":"425px","height":"125px"}} } </script> <script type="application/ld+json"> [ { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "TOP", "item": "https://gigazine.net/" }, { "@type": "ListItem", "position": 2, "name": "Appleは自らがPWAを廃止した行為を「EUのせい」と責任転嫁しようとしているとの指摘", "item": "https://gigazine.net/news/20240228-apple-pwa-dma/" } ] }, { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "TOP", "item": "https://gigazine.net/" }, { "@type": "ListItem", "position": 2, "name": "ソフトウェア", "item": "https://gigazine.net/news/C4/" }, { "@type": "ListItem", "position": 3, "name": "Appleは自らがPWAを廃止した行為を「EUのせい」と責任転嫁しようとしているとの指摘", "item": "https://gigazine.net/news/20240228-apple-pwa-dma/" } ] }, { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "TOP", "item": "https://gigazine.net/" }, { "@type": "ListItem", "position": 2, "name": "2024年02月28日", "item": "https://gigazine.net/news/2024/02/28/" }, { "@type": "ListItem", "position": 3, "name": "Appleは自らがPWAを廃止した行為を「EUのせい」と責任転嫁しようとしているとの指摘", "item": "https://gigazine.net/news/20240228-apple-pwa-dma/" } ] } ] </script> <link rel="alternate" type="application/rss+xml" title="GIGAZINE RSS Feed" href="https://gigazine.net/news/rss_2.0/"> <link rel="apple-touch-icon" href="https://gigazine.net/apple-touch-icon.png"> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> * { box-sizing: border-box;} html { font-family: sans-serif; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%;} article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary { display: block;} audio,canvas,progress,video { display: inline-block; vertical-align: baseline;} audio:not([controls]) { display: none; height: 0;} [hidden],template { display: none;} a { background-color: transparent;} a:active,a:hover { outline: 0;} abbr[title] { border-bottom: 1px dotted;} b,strong { font-weight: bold;} dfn { font-style: italic;} h1 { font-size: 2em; margin: 0.67em 0;} mark { background: #ff0; color: #000;} small { font-size: 80%;} sub,sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline;} sup { top: -0.5em;} sub { bottom: -0.25em;} img { border: 0;} svg:not(:root) { overflow: hidden;} figure { margin: 1em 40px;} hr { -webkit-box-sizing: content-box; box-sizing: content-box; height: 0;} pre { overflow: auto;} code,kbd,pre,samp { font-family: monospace, monospace; font-size: 1em;} button,input,optgroup,select,textarea { color: inherit; font: inherit; margin: 0;} button { overflow: visible;} button,select { text-transform: none;} button,html input[type="button"],input[type="reset"],input[type="submit"] { -webkit-appearance: button; cursor: pointer;} button[disabled],html input[disabled] { cursor: default;} button::-moz-focus-inner,input::-moz-focus-inner { border: 0; padding: 0;} input { line-height: normal;} input[type="checkbox"],input[type="radio"] { padding: 0;} input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button { height: auto;} input[type="search"] { -webkit-appearance: textfield; -webkit-box-sizing: content-box; box-sizing: content-box;} input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration { -webkit-appearance: none;} fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em;} legend { border: 0; padding: 0;} textarea { overflow: auto;} optgroup { font-weight: bold;} table { border-collapse: collapse; border-spacing: 0;} td,th { padding: 0;} body {padding: 0; background: #fff; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: none;} a {margin:0; padding:0; text-decoration:none; vertical-align:baseline;} a:link {color:#1020d0;} a:visited {color:#777;} a:hover, a:active {color:#1020d0;} h1, h2, h3, h4, a, p, span, blockquote, li, th, td, dt, dd, input, .yeartime, .calendarBG {font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "San Francisco", "Segoe UI", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Roboto", Verdana, Arial, Helvetica, "メイリオ", Meiryo, "MS Pゴシック", sans-serif, MS UI Gothic;} b, big, .year, .time, #inq dt, #inq dd {background:transparent; word-break: break-all; word-wrap: break-word; overflow:hidden;} .defs {display: none;} #header {width: 100%; background: #fbfef4; display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap;} .logo {margin: 2px; padding:0; background: transparent;} .logo a {margin: 0;padding: 0;} .logo svg {width: 180px; height: 53px;} .logo .logojackimg {height: 53px;} #Google_TH {text-align: center;grid-column: 1 / 4;grid-row: 3 / 4; min-height:90px;} @media all and (min-width: 1033px) { #Google_TH {grid-column:2/3; grid-row: 1/2} } @media all and (max-width: 540px) { #Google_TH {min-height:0px;} } #Google_TC {height: 280px; max-width: calc(100vw - 32px);} #header-social-button-box { margin: auto 5px 9px auto; } #push_off, #push_on {display:none; z-index:9888;} .header-social-button {width:26px; height:26px; display:inline-block; cursor: pointer;} .header-social-button svg {width:20px; height:20px; display:block; margin: 3px auto; } @media only screen and (min-width:467px) { .logo svg {width: 205px; height: 60px;} .logo .logojackimg {height: 60px;} #Google_TC {min-height: 100px; height: auto;} } @media only screen and (min-width:1380px) { .logo svg {width: 425px; height: 125px;} .logo .logojackimg {height: 125px;} } #main > #section, #main > #article, #main > #latest, #main > #sub, #subtop {width: 100%; display: block;} #main > #section, #main > #article {background: transparent; border: 1px solid #ddd;} #main { display: grid; grid-template-areas: "article" "latest" "sub"; } #article { grid-area: article; overflow: auto; } #latest { grid-area: latest; width: 100%; } #sub { grid-area: sub; width: 100%; } .sbn {width:100%; height:auto; margin:5px auto 5px; padding:0; background: transparent; overflow:hidden;} .sbn img {width:100%; height:auto; overflow:hidden;} @media only screen and (min-width:728px) { .sbn img {width:728px; height:auto;} .sbn #TC {width:728px; margin:0 auto 0; text-align:center;} } .sbn #Google_TC {width:auto; max-width: calc(100vw - 32px); margin:0 auto 0; text-align:center;} .sbn #G_TC {width:300px; height:auto; margin:0 auto 0; text-align:center;} @media only screen and (min-width: 728px) and (max-width: 1579px) { .sbn #G_TC {width:728px; height:auto; margin:0 auto 0; text-align:center;} } #latest h3 {margin:0 0 10px 0; padding:5px; color: #2F4F2F; background-color: #fef592; font-size:1em;} #subNav {width:100%; background:transparent; margin: 0 auto 0; padding: 0; display: -webkit-box; display: -ms-flexbox; -js-display: flex; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-flow: row wrap; flex-flow: row wrap;} #subNav > .list-1, #subNav > .list-2, #subNav > .list-3 {background-color: transparent; margin: 0 auto 0; padding: 0; -webkit-box-flex: 1; -ms-flex: 1 1 auto; flex: 1 1 auto;} #subNav dl {margin:0 0 10px 0; padding:0; background-color: transparent;} #subNav dl dt {margin:0; padding:5px; color: #2F4F2F; background-color: #fef592; font-size:1em; font-weight: bold;} #subNav dl dd {background: transparent;} #calendar {width:300px; height:auto; margin:10px auto 10px;} #searchform {margin:0; padding:0;} #searchform form {width:298px; margin:10px auto 10px; padding:0; overflow: hidden; position: relative;} #searchform input.input[type="text"] {border-radius: 0; border-style: none; -webkit-appearance: none; -moz-appearance: none; appearance: none; background:transparent; width: 254px; height: 40px; border: 1px solid #e1e1e1; background:#fff; margin:0; padding:0;} #searchform input.reset[type="reset"], #searchform input.submit[type="submit"], #searchform button.submit[type="submit"] {border-radius: 0; border-style: none; -webkit-appearance: none; -moz-appearance: none; appearance: none; background:transparent;} #searchform .reset{position: absolute; top: 0; left: 226px; width: 30px; height: 40px; margin:0; padding:0; font-weight:bold;font-size:22px; vertical-align:middle; color:#757575;} #searchform .submit{position: absolute; top: 0; left: 254px; width: 42px; height: 42px; margin:0; padding:0;} #searchform button.submit[type="submit"]{background:#3b78e7; border: 1px solid #3367d6;} #searchform .submit .icon{display: inline-block; width: 1em; height: 1em; margin: 0; padding: 0; fill:#fff;} .cntimage .yeartime {color:#777; font-size: .9em; font-weight: bold; display:inline-block; margin: 2px 0 2px 0;} .cntimage .title{display:block; color: #000; background: #ffdd00; margin: 0 0 5px 0; padding:2px 1px 2px 5px; line-height: 1.1em; font-weight: bold; font-size: 1.2em; word-wrap: break-word;} .preface, .article{color: #333; font-size: 1em;line-height:1.6em; word-break: break-all; word-wrap: break-word;} .preface{margin: 0; padding:1px 4px 1px 4px;} .article{margin: 0; padding:19px 4px 14px 4px;} .preface b {color: #000;} .cntimage img {width:100%; height:auto; border-top:1px solid #e1e1e1; border-bottom:1px solid #e1e1e1; border-left:1px solid #e1e1e1; border-right:1px solid #e1e1e1; vertical-align:bottom; overflow: hidden;} .img-standard-size { aspect-ratio: 16/9; } .img-old-ratio { aspect-ratio: 4/3; } .cntimage span img{width: auto; height: auto; border-top: none; border-bottom: none; overflow: hidden;} #latest .e_ad .card{width:100%; margin:0;padding:2px 0 2px 0; background: #fbfef4; display: -webkit-box; display: -ms-flexbox; -js-display: flex; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-flow: row wrap; flex-flow: row wrap;} #latest .e_ad .thumb{width: 101px; -webkit-box-flex: 0; -ms-flex: none; flex: none; -webkit-box-ordinal-group: 3; -ms-flex-order: 2; order: 2; min-height: 59px;} #latest .e_ad .thumb a:link, #latest .e_ad .thumb a:visited, #latest .e_ad .thumb a:hover, #latest .e_ad .thumb a:active{display:block; width: 96px; height: 54px; margin: 0 5px 5px 0; overflow: hidden; background-color: #888; border: 1px solid #e1e1e1;} #latest .e_ad .thumb img{position: relative; top: 50%; left: 50%; width: 93px; height: 52px; -webkit-transform: translate(-50%,-50%); -ms-transform: translate(-50%,-50%); transform: translate(-50%,-50%);} #latest .e_ad h2{display:block; width:auto; height:auto; margin:0; padding: 0 0 2px 5px; font-weight:normal; font-size: .875em;line-height:1.2em; word-wrap: break-word; background: #fbfef4; -webkit-box-flex: 1; -ms-flex: 1 1 60%; flex: 1 1 60%; -webkit-box-ordinal-group: 2; -ms-flex-order: 1; order: 1;} #latest .e_ad h2 a{display:inline; width:auto; height:auto; background: #fbfef4; margin:0 auto 0; padding: 0; overflow: hidden;} #latest .e_ad h2 a span{display:inline; padding: 1px 0 0 0; word-wrap: break-word;} #latest .e_ad .date { -webkit-box-flex: initial; -ms-flex: initial; flex: initial; width: 100%; -webkit-box-ordinal-group: 4; -ms-flex-order: 3; order: 3; height:1em;} #latest .e_ad .adtag .catab{position:absolute; top:2px; left:5px; color: #333; word-wrap: break-word; margin:0; font-weight:bold; font-size: .675em;} #latest .e_frame { position: relative; height: 5.45em; } #latest .e_frame>iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } @media all and (min-width: 810px) { .cntimage .title{font-size: 1.3em;} .cntimage img {width:auto; max-width:100%; height:auto;} .img-standard-size, .img-old-ratio { width: 560px !important;} #article .cntimage {width:auto; height:auto; margin: 0; padding:2px; overflow: hidden;} } @media all and (min-width: 1112px) { #main { min-height: 800px; grid-template-columns: 300px 1fr; grid-template-rows: "auto auto"; grid-template-areas: "latest article" "sub sub"; } #main > #latest { width: 300px;} #subNav {max-width:960px; background:transparent; margin: 10px auto 10px; padding: 0; display: -webkit-box; display: -ms-flexbox; -js-display: flex; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-flow: row wrap; flex-flow: row wrap;} #subNav > .list-1, #subNav > .list-2, #subNav > .list-3 {width:300px; margin:0 10px 0 10px;} #subNav .navi-list-2col{max-width:300px; margin:0; border-bottom:none; background:#fbfef4; overflow:hidden;} #subNav .navi-list-2col:after{content:""; display:block; clear:both;} #subNav .navi-list-2col dd{margin:0; width:50%; float:left; -webkit-box-sizing:border-box; box-sizing:border-box; background:#fbfef4;} #subNav .navi-list-2col dd:nth-child(even),#subNav .navi-list-2col dd:nth-child(odd){border-right:none;} #subNav .navi-list-2col dd a{position: relative; display:block; margin:0; padding:0; line-height:1em; margin-bottom:-1px; border-top:none; border-bottom:none;} #subNav .navi-list-2col dd .iconcat{display: inline-block; width: 30px; height: 30px; margin:0 0 0 .55em; padding: 0;} #subNav .navi-list-2col dd a b{position: absolute; top: 6px; left: 40px; font-size: .875em; display: inline; margin:0; padding: 0; vertical-align:middle;} #article .cntimage {width:auto; height:auto; margin: 0; padding:0 4px 0; overflow: hidden;} } @media all and (min-width: 1380px) { #main { grid-template-columns: 300px 1fr 300px; grid-template-areas: "latest article sub"; } #main > #sub { width: 300px;} .date time, .catab, .contentadleft .e_ad .adtag .catab {font-size: .8em;} .cntimage .yeartime {font-size: 1.1em;} .cntimage .title{font-size: 1.5em;} #latest h3, #subNav dl dt {font-size:1.17em;} #main > #sub { width: 300px;} #sub {border-top:none;} #sub #subNav {max-width:300px; background:transparent; margin: 0; padding: 0; display: -webkit-box; display: -ms-flexbox; -js-display: flex; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-flow: row wrap; flex-flow: row wrap;} #sub #subNav > .list-1, #sub #subNav > .list-2, #sub #subNav > .list-3 {width:300px; margin:0;} } #Google_IL > div{ max-width: calc(100vw - 32px); } #LT { width: 300px; height: 250px; max-width: 100%; } </style> <link rel="stylesheet" type="text/css" href="https://i.gzn.jp/css/common_v5_19.css" media="print" onload="this.media='all'"> <!-- a_lib_css --> <script src="https://i.gzn.jp/js/lazysizes.min.js" async=""></script> <!-- a_lib_js --> <!-- Google Analytics --> <script data-cfasync="false"> window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; ga('create', 'UA-134978-3', 'auto'); ga('send', 'pageview'); </script> <script async src='https://www.google-analytics.com/analytics.js'></script> <!-- End Google Analytics --> <script data-cfasync="false"> (function(w,d,s,l,i){ w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'}); var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true; j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-WKH2HB8'); </script> <script id="growthbook-sdk" src="https://cdn.jsdelivr.net/npm/@growthbook/growthbook/dist/bundles/index.min.js" defer data-cfasync="false"></script> <script data-cfasync="false"> (function() { if (window.growthbook) {startGrowthbook();} else { document.querySelector("#growthbook-sdk").addEventListener("load", startGrowthbook); } window.gbcmd = window.gbcmd || []; function startGrowthbook() { if (!window.growthbook) return; const getUUID=()=>{let $="gbuuid",e=()=>window.crypto.randomUUID?window.crypto.randomUUID():"10000000-1000-4000-8000-100000000000".replace(/[018]/g,$=>($^crypto.getRandomValues(new Uint8Array(1))[0]&15>>$/4).toString(16)),t=$=>{let e=`; ${document.cookie}`.split(`; ${$}=`);if(2===e.length)return e.pop().split(";").shift()},r=($,e)=>{var t=new Date;t.setTime(t.getTime()+3456e7),document.cookie=$+"="+e+";path=/;expires="+t.toGMTString()};if(t($))return t($);let i=e();return r($,i),i}; let gbuuid = getUUID(); let gb = new growthbook.GrowthBook({ apiHost: "https://cdn.growthbook.io", clientKey: "sdk-crJoxkg8XM7YuqJV", attributes: { id: gbuuid, random: window.crypto.randomUUID?window.crypto.randomUUID():"10000000-1000-4000-8000-100000000000".replace(/[018]/g,$=>($^crypto.getRandomValues(new Uint8Array(1))[0]&15>>$/4).toString(16)) }, trackingCallback: function(experiment, result) { dataLayer.push({'event': 'experiment_viewed', 'event_category': "experiment", 'experiment_id': experiment.key, 'variation_id': result.variationId, 'gb_user_id': gbuuid, }); } }); gb.loadFeatures().then(function() { if(window.gbcmd && window.gbcmd instanceof Array){ window.gbcmd.forEach(cmd=>{cmd(gb);}); window.gbcmd = { push: (cmd)=>{cmd(gb)} } } }); } })(); </script> <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script> <script data-cfasync="false"> !function(a9,a,p,s,t,A,g){if(a[a9])return;function q(c,r){a[a9]._Q.push([c,r])}a[a9]={init:function(){q("i",arguments)},fetchBids:function(){q("f",arguments)},setDisplayBids:function(){},targetingKeys:function(){return[]},_Q:[]};A=p.createElement(s);A.async=!0;A.src=t;g=p.getElementsByTagName(s)[0];g.parentNode.insertBefore(A,g)}("apstag",window,document,"script","//c.amazon-adsystem.com/aax2/apstag.js"); </script> <script data-cfasync="false"> var googletag = googletag || {}; googletag.cmd = googletag.cmd || []; var slotData = [ {name:'/4330625/Google_RB',sizes:[[300, 250], [300, 600]],domId:'div-gpt-ad-1524184715175-0',tam:true}, {name:'/4330625/Google_EF/Google_EF_2',sizes:[[300, 250], [336, 280]],domId:'div-gpt-ad-1524638328920-0',tam:true}, {name:'/4330625/Google_EF',sizes:[[300, 250], [336, 280]],domId:'div-gpt-ad-1583371000737-0',tam:true}, {name:'/4330625/Google_LB',sizes:[[300, 250], [300, 600]],domId:'div-gpt-ad-1524100786099-0',tam:true}, {name:'/4330625/Google_LT',sizes:[300, 250],domId:'div-gpt-ad-1524101924592-0',tam:true}, {name: '/4330625/Interstitial', outOfPageFormat: 'INTERSTITIAL'} ]; if( (navigator.userAgent.indexOf('iPhone') > 0 && navigator.userAgent.indexOf('iPad') == -1) || (navigator.userAgent.indexOf('Android') > 0 && navigator.userAgent.indexOf('Mobile') > 0) || navigator.userAgent.indexOf('Windows Phone') > 0 ){ // スマートフォン slotData.push({name:'/4330625/Google_TC',sizes:[[336, 280], [320, 180], [300, 250]],domId:'div-gpt-ad-1533535919247-0',tam:true}); slotData.filter(v=>v.name === "/4330625/Google_EF")[0].domId='div-gpt-ad-1583371000737-1'; slotData.push({name:'/4330625/Google_OL',sizes:['fluid', [320, 50]],domId:'div-gpt-ad-1597714017941-0',tam:true}); slotData.filter(v=>v.name === "/4330625/Google_LT")[0].sizes.push([336, 280]); slotData.filter(v=>v.name === "/4330625/Google_LB")[0].sizes.push([336, 280]); slotData.filter(v=>v.name === "/4330625/Google_RB")[0].sizes.push([336, 280]); } else { slotData.push({name:'/4330625/Google_TC', sizes:[728, 90], domId:'div-gpt-ad-1533535919247-0',tam:true}); slotData.push({name:'/4330625/Google_RT', sizes:[300, 250], domId:'div-gpt-ad-1523935894717-2',tam:true}); slotData.push({name:'/4330625/Google_TH', sizes:[728, 90], domId:'div-gpt-ad-1664264689307-0',tam:false}); } if (location.pathname.match(/^\/$/)) { slotData.filter(v=>v.name === "/4330625/Google_LT")[0].tam = false; } //set APS config apstag.init({ pubID: '3868', adServer: 'googletag' }); //Define apstag slots const apstagSlots = slotData.filter(data=>data.tam).map(function(value) { return { slotID: value.domId, slotName: value.name, sizes: value.sizes }; }); function sendAdserverRequest(){ if(window.adServerRequestSent === true)return; window.adServerRequestSent = true; console.log('fetchBids() END:' + Date.now()); googletag.cmd.push(function() { apstag.setDisplayBids(); googletag.pubads().refresh(); }); } console.log('fetchBids() BEGIN:' + Date.now()); apstag.fetchBids({ slots: apstagSlots }, function(bids) {sendAdserverRequest();}); googletag.cmd.push(()=>{ slotData.forEach(data=>{ if( data.domId === undefined && data.sizes === undefined ){ if( data.outOfPageFormat === 'INTERSTITIAL' ){ try { googletag.defineOutOfPageSlot(data.name, googletag.enums.OutOfPageFormat.INTERSTITIAL).addService(googletag.pubads()); } catch { console.log(`Interstitial slot "${data.name}" is already exists.`); } } }else{ try {googletag.defineSlot(data.name,data.sizes,data.domId).addService(googletag.pubads());} catch { console.log(`slot "${data.name}" is already exists.`); } } }); googletag.pubads().setTargeting('category',["ソフトウェア"]); googletag.pubads().disableInitialLoad(); googletag.pubads().enableLazyLoad({ fetchMarginPercent: 500, // Fetch slots within 5 viewports. renderMarginPercent: 200, // Render slots within 2 viewports. mobileScaling: 2.0 // Double the above values on mobile. }); googletag.pubads().enableSingleRequest(); googletag.pubads().collapseEmptyDivs(); googletag.enableServices(); }); window.setTimeout(() => {sendAdserverRequest();}, 900); </script> <!-- .a_lib_google_comments --> <meta name="twitter:widgets:autoload" content="off"> <script data-cfasync="false">window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs); t._e = []; t.ready = function(f) {t._e.push(f);}; return t; }(document, "script", "twitter-wjs"));</script> <style> .yt { position:relative; max-width: 560px; } .yt_play:hover {cursor:pointer;} .yt_play::before { /* YouTubeアイコン */ position: absolute; background: url(https://i.gzn.jp/img/yt_icon_rgb.png); content: ""; background-size: 100%; width: 70px; height: 50px; top: 50%; left: 50%; transform : translate(-50%,-50%); opacity: .90; transition:.5s; } .yt_play:hover::before { /* YouTubeアイコン */ cursor: pointer; background-image:url(https://i.gzn.jp/img/yt_icon_rgb.png); } .yt_play > img{ max-width: 560px; aspect-ratio: 16/9; } @media (min-width: 810px) { .yt_play > img{ width: 560px; } } </style> </head> <body class="no-login"> <script data-cfasync="false" src="https://i.gzn.jp/img/-side-ad.js"></script> <div style="display:none;" id="donation_wrapper" data-nosnippet> <style> @starting-style { #donate_large { opacity: 0; } } #donate_large { margin: 0 20px; padding: 1px 10px 12px; transition: opacity 0.5s, transform 0.5s, height 0.5s, display 0.5s allow-discrete; } .is-deleting { opacity: 0; } #donate_large label { text-align: left; padding-left: 4px; } .donate_title { font-size: 1.6rem; color: #000; background: #fd0; line-height: 1.1em; font-weight: 700; word-wrap: break-word; padding: 2px 1px 2px 5px; margin: 0 0 6px 0; width: 100%; cursor: pointer; } .amount_options { max-width: 76vw; width: 100%; display: block; margin-top: 8px; grid-area: 1 / 1 / 1 / -1; } .amount_options ul { display: flex; margin: 0; padding: 0; list-style: none; } .amount_options li { flex: 1 0 0; padding: 4px; } .amount_options > input { width: 274px; max-width: 66%; display: block; margin: 10px auto; height: 30px; transform: scale(1.5); } .donate_button { display: inline-grid; grid-template-columns: 1fr 100px auto 1fr; grid-template-rows: 80px auto; width: 400px; height: 140px; max-width: 100%; padding: 12px 0; text-align: center; color: white !important; font-weight: bold; border-radius: 8px; box-shadow: 1px 1px 0 0 rgba(255,255,255,.3) inset, 3px 3px 8px 0 rgba(0,0,0,0.4); } .small_note { font-size: large; grid-area: 2 / 3 / 3 / 4; } .price_note { grid-area: 1/3/2/4; font-size:68px; } @media screen and (max-width: 450px) { .donate_button{ grid-template-columns: 1fr 80px auto 1fr; } .price_note{font-size:60px;} } .donate_icon { grid-area: 1/1/-1/3; width: 85%; max-width: 100px; margin: auto; max-height: 100px; } .fa-secondary{fill:#fdd835;} .payment-marks { display: flex; width: 400px; max-width: 100%; margin: auto; justify-content: right; } .payment-marks img{ height: 30px; margin-right: 6px; border: none; width: auto; } </style> <svg display="none"> <defs> <symbol viewBox="0 0 576 512" id="pg-bank"> <!-- Font Awesome Pro 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) --> <path d="M560 224h-29.51a159.88 159.88 0 0 0-37.38-52.46L512 96h-32c-29.4 0-55.39 13.5-73 34.32-7.57-1.1-15.12-2.32-23-2.32H256c-94.82 0-160 78.88-160 160a159.75 159.75 0 0 0 64 128v80a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-48h128v48a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-80.72A160.37 160.37 0 0 0 511.28 384H560a16 16 0 0 0 16-16V240a16 16 0 0 0-16-16zm-128 64a16 16 0 1 1 16-16 16 16 0 0 1-16 16z" class="fa-secondary"/><path d="M51.26 255.52a24 24 0 0 1-18.74-28.3C34.74 215.82 45.4 208 57 208h1a6 6 0 0 0 6-6v-20a6 6 0 0 0-6-6C29.5 176 4.1 196.4.47 224.62a54.64 54.64 0 0 0-.47 7.23A56.08 56.08 0 0 0 56 288h40a155.05 155.05 0 0 1 3.37-32H56a23.63 23.63 0 0 1-4.74-.48zM432 256a16 16 0 1 0 16 16 16 16 0 0 0-16-16zM306.5 0a96 96 0 0 0-88.81 132.51A162.64 162.64 0 0 1 256 128h128a104.31 104.31 0 0 1 12.71.88A96.06 96.06 0 0 0 306.5 0z" class="fa-primary"/> </symbol> </defs> </svg> <div id="donate_title_close" class="donate_title" style="display:none;"> ▼サーバー運営を助ける支援をお願いします </div> <div id="donate_title_open" class="donate_title"> ▼サーバー運営を助ける支援をお願いします </div> <div id="donate_large"> <div style="text-align: center; display: grid; grid-template-columns: 30px 20px auto 20px auto; grid-template-rows: auto auto; width: 400px; max-width: 100%; margin: auto;"> <div class="amount_options" id="onetime"> <a id="donate_link" onclick="localStorage.setItem('donateClickDate', new Date().toString());dataLayer.push({'event': 'donateLinkClicked'});" href="https://donate.stripe.com/5kA5msbys6u42Gs14k" target="_blank" class="button-exp-style donate_button"> <svg class="donate_icon"><use xlink:href="#pg-bank"></svg> <span class="price_note">900円</span><span class="small_note">(うち手数料33円)</span></a> <input type="range" min="1" max="7" value="3" id="donation_slider"> <script> const priceData = [ { text: `<svg class="donate_icon"><use xlink:href="#pg-bank"></svg><span class="price_note">300円</span><span class="small_note">(うち手数料11円)</span>`, url: "https://donate.stripe.com/fZe4io1XSbOo0yk9AB" }, { text: `<svg class="donate_icon"><use xlink:href="#pg-bank"></svg><span class="price_note">600円</span><span class="small_note">(うち手数料22円)</span>`, url: "https://donate.stripe.com/00g4io6e8bOo1CoeV9" }, { text: `<svg class="donate_icon"><use xlink:href="#pg-bank"></svg><span class="price_note">900円</span><span class="small_note">(うち手数料33円)</span>`, url: "https://donate.stripe.com/5kA5msbys6u42Gs14k" }, { text: `<svg class="donate_icon"><use xlink:href="#pg-bank"></svg><span class="price_note">1500円</span><span class="small_note">(うち手数料54円)</span>`, url: "https://donate.stripe.com/14k4io7ic6u46WI147" }, { text: `<svg class="donate_icon"><use xlink:href="#pg-bank"></svg><span class="price_note">3000円</span><span class="small_note">(うち手数料108円)</span>`, url: "https://donate.stripe.com/28o6qweKE9GgftedQV" }, { text: `<svg class="donate_icon"><use xlink:href="#pg-bank"></svg><span class="price_note">5000円</span><span class="small_note">(うち手数料180円)</span>`, url: "https://donate.stripe.com/bIY4ioauo7y8ch24gm" }, { text: `<svg class="donate_icon"><use xlink:href="#pg-bank"></svg><span class="price_note">1万円</span><span class="small_note">(うち手数料360円)</span>`, url: "https://donate.stripe.com/cN25ms1XSf0AfteeV1" }, { text: `<svg class="donate_icon"><use xlink:href="#pg-bank"></svg><span class="price_note">テスト</span><span class="small_note">(うち手数料XX円)</span>`, url: "https://donate.stripe.com/test_7sIaIy7n5arT90c7st" } ]; const slider = document.getElementById("donation_slider"); const button = document.getElementById("donate_link"); slider.addEventListener("input", e=>{ button.innerHTML = priceData[e.target.value - 1].text; button.href = priceData[e.target.value - 1].url + window.location.search; }); button.href = button.href + window.location.search; </script> </div> </div> <div class="payment-marks"> <img src="https://i.gzn.jp/img/gsc/payment/visa.png" border="0"> <img src="https://i.gzn.jp/img/gsc/payment/master.png" border="0"> <img src="https://i.gzn.jp/img/gsc/payment/amex.png" border="0"> <img src="https://i.gzn.jp/img/gsc/payment/apple-pay.svg" border="0"> <img src="https://i.gzn.jp/img/gsc/payment/g-pay.png" border="0"> </div> <p> 私たちは過去最高の大ヒットを記録しているのと裏腹に価格高騰などの影響でサーバー運営が非常に苦しい状態です。打てる手は全て打ちましたが、それでもまだ危機的状況にあります。なので、GIGAZINEの物理的なサーバーたちを、たった1円でも良いので読者の皆さまに支援してもらえればとっても助かります!今すぐ1回払いの寄付は上のボタンから、毎月寄付は<b><a href="https://gigazine.net/club/" target="_blank">こちらのリンク先から!</a></b><br> </p> </div> </div> <script src="https://i.gzn.jp/img/-side-ad.js"></script> <script> { let adblock = false; if(!document.getElementById('F1qAYhOnM7DF6mEd')){ adblock = true; } const showDonateWrapper = ()=>{ donationWrapper.style.display = "block"; } const donationWrapper = document.getElementById('donation_wrapper'); if(/https:\/\/gigazine.net\/news\/about\/*/.test(location.href)){showDonateWrapper();} else if(!window.localStorage.getItem("landing_flag_donate")){ window.localStorage.setItem("landing_flag_donate", Date.now()); } else { if( adblock && new Date("2024/08/01") < Date.now() && new Date("2024/09/01") > Date.now()){ if(!window.localStorage.getItem("donate_date")){ const showDate = window.localStorage.getItem("donate_show_date"); if(!showDate){showDonateWrapper();} else { if(showDate < Date.now() - 1000*3600*24){showDonateWrapper();} } } } } const DonateLink = document.getElementById("donate_link"); DonateLink.addEventListener('click', ()=>{ window.localStorage.setItem("donate_date", Date.now()); }); const divTitleClose = document.getElementById('donate_title_close'); const divTitleOpen = document.getElementById('donate_title_open'); const divLarge = document.getElementById('donate_large'); divTitleClose.addEventListener('click', ()=>{ divLarge.style.display = "block"; divLarge.classList.remove('is-deleting'); divTitleClose.style.display = "none"; divTitleOpen.style.display = "block"; }) divTitleOpen.addEventListener('click', ()=>{ divLarge.style.display = "none"; divLarge.classList.add('is-deleting'); divTitleClose.style.display = "block"; divTitleOpen.style.display = "none"; window.localStorage.setItem("donate_show_date", Date.now()); }) } </script> <script data-cfasync="false" data-ad-client="ca-pub-4478613964609822" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- /4330625/Google_OL --> <div id="gStickyAd"> <style> #gStickyAd { width:100%; background-color: lightgray; position: fixed; bottom: 0px; left:0; text-align: center; z-index: 2147483647;} </style> <div id='div-gpt-ad-1597714017941-0' style="padding-top: 5px; padding-bottom: 5px; margin-left: auto; margin-right: auto;"> <script data-cfasync="false"> googletag.cmd.push(function() {googletag.display('div-gpt-ad-1597714017941-0');}); (function (){ if( (navigator.userAgent.indexOf('iPhone') > 0 || navigator.userAgent.indexOf('iPad') > 0) || (navigator.userAgent.indexOf('Android') > 0 && navigator.userAgent.indexOf('Mobile') > 0) || navigator.userAgent.indexOf('Windows Phone') > 0 ){ document.body.style.marginBottom = '68px'; } else { document.getElementById('gStickyAd').style.display = 'none'; } })() </script> </div> </div> <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WKH2HB8" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> <!-- ad_flag: FALSE --><!-- gpublic_ASO --> <svg class="defs" version="1.1" xmlns="http://www.w3.org/2000/svg"><defs> <symbol id="logo" viewBox="0 0 200.478 58.796"><g><g id="logoid1"><path d="M47.44 13.564c-2.235-1.29-7.403-4.06-14.665-4.06-1.327 0-4.47.13-7.96 1.29-6.705 2.384-10.616 7.732-10.616 14.368 0 1.16.14 3.995 1.675 7.023 1.536 3.093 5.796 8.505 15.433 8.505 2.933 0 4.75-.45 7.472-1.353l.07-8.634H27.188l5.028-8.118h18.716l-.21 21.842c-3.073 1.224-11.313 4.38-21.23 4.38-3.422 0-17.388-.32-24.582-10.63C3.374 35.987 1 31.67 1 25.162 1 15.755 6.447 10.085 9.24 7.83 12.872 4.8 19.716 1 31.308 1c3.422 0 8.59.194 16.132 2.32v10.244z" fill="#fcc800" stroke="#0B0008" stroke-width="1.5"/></g><g id="logoid2"><path d="M58.69 13.857c-2.473 0-4.505-1.836-4.505-4.652 0-2.755 2.143-4.53 4.505-4.53 2.417 0 4.505 1.775 4.505 4.59 0 2.878-2.197 4.592-4.505 4.592zm4.395 34.1V17.714H54.24v30.243h8.845z" fill="#f39800" stroke="#0B0008" stroke-width="1.5"/></g><g id="logoid3"><path d="M91.325 44.357c0 .624.05 2.544-.48 4.416-.96 3.648-4.27 9.023-13.294 9.023-1.2 0-5.663-.192-9.55-1.776V49.3c2.304 1.824 5.712 2.976 8.64 2.976.815 0 4.27 0 5.998-2.832.816-1.296 1.01-2.88 1.01-6V41.86l-3.457 4.896c-.48.096-1.39.288-2.687.288-1.296 0-5.184-.144-8.063-3.168-1.2-1.248-2.736-3.552-2.736-7.632 0-.816.096-3.12 1.104-5.375 1.392-3.073 4.847-7.2 12.863-7.2 3.745 0 7.2.816 10.656 2.352v18.335zm-7.727-14.4c-1.535-.67-2.4-.72-3.215-.72-3.696 0-5.616 2.833-5.616 6.29 0 3.31 1.68 6.095 5.23 6.095 1.73 0 3.17-.72 3.65-.912l-.05-10.752z" fill="#eb6100" stroke="#0B0008" stroke-width="1.5"/></g><g id="logoid4"><path d="M105.575 47.957c-.072-.504-.072-.972-.108-1.44 0-.432-.036-.864-.036-1.296l-2.41 2.99c-.47.07-1.01.18-2.017.18-2.232 0-4.572-.65-5.832-2.665-.72-1.152-.755-2.376-.755-2.88 0-.612.072-2.016 1.116-3.348 1.153-1.44 3.205-2.664 7.165-2.664 1.296 0 2.304.144 2.736.18 0-.18 0-.612-.107-1.08-.648-2.556-3.204-2.448-3.852-2.448-1.44 0-2.88.216-5.615 1.404l2.7-4.573c2.16-.54 3.96-.576 4.788-.576.648 0 4.032-.107 6.048 1.98.83.83 1.117 1.62 1.225 2.053.324 1.008.324 2.052.324 2.376v9.575c0 .864 0 1.404.107 2.232h-5.472zm-.144-7.668c-.323-.037-.863-.11-1.69-.11-1.08 0-2.52.11-3.313 1.117-.432.54-.468 1.116-.468 1.368 0 1.008.647 2.16 2.807 2.16 1.008 0 1.764-.252 2.664-.612V40.29z" fill="#e60012" stroke="#0B0008" stroke-width="1.5"/></g><g id="logoid5"><path d="M114.103 47.957v-4.86l13.068-15.48h-12.095V22.54h20.448v5.005L122.527 42.88h14.616l-2.952 5.077z" fill="#a9005b" stroke="#0B0008" stroke-width="1.5"/></g><g id="logoid6"><path d="M144.696 13.857c-2.473 0-4.505-1.836-4.505-4.652 0-2.755 2.144-4.53 4.506-4.53 2.417 0 4.505 1.775 4.505 4.59 0 2.878-2.197 4.592-4.504 4.592zm4.394 34.1V17.714h-8.845v30.243h8.845z" fill="#460292" stroke="#0B0008" stroke-width="1.5"/></g><g id="logoid7"><path d="M172.738 47.957l-13.932-15.444v15.444h-6.48V22.54h5.832l12.42 13.79V22.54h6.444v25.417z" fill="#091aac" stroke="#0B0008" stroke-width="1.5"/></g><g id="logoid8"><path d="M180.36 47.957V22.54h16.487v5.005h-9.864v4.896h8.46v4.933h-8.46v5.544h11.772l-2.88 5.04z" fill="#0d26f9" stroke="#0B0008" stroke-width="1.5"/></g></g></symbol> <symbol id="icon-tw" viewBox="0 0 1200 1227"><path d="m714.163 519.284 446.727-519.284h-105.86l-387.893 450.887-309.809-450.887h-357.328l468.492 681.821-468.492 544.549h105.866l409.625-476.152 327.181 476.152h357.328l-485.863-707.086zm-144.998 168.544-47.468-67.894-377.686-540.2396h162.604l304.797 435.9906 47.468 67.894 396.2 566.721h-162.604l-323.311-462.446z"></path></symbol><symbol id="icon-facebook" viewBox="0 0 1024 1024"><path d="M608 192h160v-192h-160c-123.514 0-224 100.486-224 224v96h-128v192h128v512h192v-512h160l32-192h-192v-96c0-17.346 14.654-32 32-32z"></path></symbol><symbol id="icon-yt" viewBox="0 0 1024 1024"><path d="M1013.8 307.2c0 0-10-70.6-40.8-101.6-39-40.8-82.6-41-102.6-43.4-143.2-10.4-358.2-10.4-358.2-10.4h-0.4c0 0-215 0-358.2 10.4-20 2.4-63.6 2.6-102.6 43.4-30.8 31-40.6 101.6-40.6 101.6s-10.2 82.8-10.2 165.8v77.6c0 82.8 10.2 165.8 10.2 165.8s10 70.6 40.6 101.6c39 40.8 90.2 39.4 113 43.8 82 7.8 348.2 10.2 348.2 10.2s215.2-0.4 358.4-10.6c20-2.4 63.6-2.6 102.6-43.4 30.8-31 40.8-101.6 40.8-101.6s10.2-82.8 10.2-165.8v-77.6c-0.2-82.8-10.4-165.8-10.4-165.8zM406.2 644.8v-287.8l276.6 144.4-276.6 143.4z"></path></symbol><symbol id="icon-rss" viewBox="0 0 1024 1024"><path d="M136.294 750.93c-75.196 0-136.292 61.334-136.292 136.076 0 75.154 61.1 135.802 136.292 135.802 75.466 0 136.494-60.648 136.494-135.802-0.002-74.742-61.024-136.076-136.494-136.076zM0.156 347.93v196.258c127.784 0 247.958 49.972 338.458 140.512 90.384 90.318 140.282 211.036 140.282 339.3h197.122c-0.002-372.82-303.282-676.070-675.862-676.070zM0.388 0v196.356c455.782 0 826.756 371.334 826.756 827.644h196.856c0-564.47-459.254-1024-1023.612-1024z"></path></symbol><symbol id="icon-user" viewBox="0 0 1024 1024"><path d="M576 706.612v-52.78c70.498-39.728 128-138.772 128-237.832 0-159.058 0-288-192-288s-192 128.942-192 288c0 99.060 57.502 198.104 128 237.832v52.78c-217.102 17.748-384 124.42-384 253.388h896c0-128.968-166.898-235.64-384-253.388z"></path></symbol> <symbol id="icon-search" viewBox="0 0 1024 1024"><path d="M992.262 871.396l-242.552-206.294c-25.074-22.566-51.89-32.926-73.552-31.926 57.256-67.068 91.842-154.078 91.842-249.176 0-212.078-171.922-384-384-384-212.076 0-384 171.922-384 384s171.922 384 384 384c95.098 0 182.108-34.586 249.176-91.844-1 21.662 9.36 48.478 31.926 73.552l206.294 242.552c35.322 39.246 93.022 42.554 128.22 7.356s31.892-92.898-7.354-128.22zM384 640c-141.384 0-256-114.616-256-256s114.616-256 256-256 256 114.616 256 256-114.614 256-256 256z"></path></symbol> <symbol id="icon-pinterest" viewBox="0 0 243 243"><path d="M121.5,0C54.4,0,0,54.4,0,121.5C0,173,32,217,77.2,234.7c-1.1-9.6-2-24.4,0.4-34.9 c2.2-9.5,14.2-60.4,14.2-60.4s-3.6-7.3-3.6-18c0-16.9,9.8-29.5,22-29.5c10.4,0,15.4,7.8,15.4,17.1c0,10.4-6.6,26-10.1,40.5 c-2.9,12.1,6.1,22,18,22c21.6,0,38.2-22.8,38.2-55.6c0-29.1-20.9-49.4-50.8-49.4C86.3,66.5,66,92.4,66,119.2c0,10.4,4,21.6,9,27.7 c1,1.2,1.1,2.3,0.8,3.5c-0.9,3.8-3,12.1-3.4,13.8c-0.5,2.2-1.8,2.7-4.1,1.6c-15.2-7.1-24.7-29.2-24.7-47.1 c0-38.3,27.8-73.5,80.3-73.5c42.1,0,74.9,30,74.9,70.2c0,41.9-26.4,75.6-63,75.6c-12.3,0-23.9-6.4-27.8-14c0,0-6.1,23.2-7.6,28.9 c-2.7,10.6-10.1,23.8-15.1,31.9c11.4,3.5,23.4,5.4,36,5.4c67.1,0,121.5-54.4,121.5-121.5C243,54.4,188.6,0,121.5,0z"/></symbol> <symbol id="icon-dc" viewBox="0 0 127.14 96.36"><defs><style>.cls-1{fill:#5865f2;}</style></defs><g id="layer_2" data-name="layer 2"><g id="Discord_Logos" data-name="Discord Logos"><g id="Discord_Logo_-_Large_-_White" data-name="Discord Logo - Large - White"><path class="cls-1" d="M107.7,8.07A105.15,105.15,0,0,0,81.47,0a72.06,72.06,0,0,0-3.36,6.83A97.68,97.68,0,0,0,49,6.83,72.37,72.37,0,0,0,45.64,0,105.89,105.89,0,0,0,19.39,8.09C2.79,32.65-1.71,56.6.54,80.21h0A105.73,105.73,0,0,0,32.71,96.36,77.7,77.7,0,0,0,39.6,85.25a68.42,68.42,0,0,1-10.85-5.18c.91-.66,1.8-1.34,2.66-2a75.57,75.57,0,0,0,64.32,0c.87.71,1.76,1.39,2.66,2a68.68,68.68,0,0,1-10.87,5.19,77,77,0,0,0,6.89,11.1A105.25,105.25,0,0,0,126.6,80.22h0C129.24,52.84,122.09,29.11,107.7,8.07ZM42.45,65.69C36.18,65.69,31,60,31,53s5-12.74,11.43-12.74S54,46,53.89,53,48.84,65.69,42.45,65.69Zm42.24,0C78.41,65.69,73.25,60,73.25,53s5-12.74,11.44-12.74S96.23,46,96.12,53,91.08,65.69,84.69,65.69Z"/></g></g></g></symbol> <symbol id="icon-th" viewBox="0 0 878 1000"><g><path class="st0" d="M446.7,1000h-0.3c-149.2-1-263.9-50.2-341-146.2C36.9,768.3,1.5,649.4,0.3,500.4v-0.7 c1.2-149.1,36.6-267.9,105.2-353.4C182.5,50.2,297.3,1,446.4,0h0.3h0.3c114.4,0.8,210.1,30.2,284.4,87.4 c69.9,53.8,119.1,130.4,146.2,227.8l-85,23.7c-46-165-162.4-249.3-346-250.6c-121.2,0.9-212.9,39-272.5,113.2 C118.4,271,89.6,371.4,88.5,500c1.1,128.6,29.9,229,85.7,298.5c59.6,74.3,151.3,112.4,272.5,113.2c109.3-0.8,181.6-26.3,241.7-85.2 c68.6-67.2,67.4-149.7,45.4-199.9c-12.9-29.6-36.4-54.2-68.1-72.9c-8,56.3-25.9,101.9-53.5,136.3c-36.9,45.9-89.2,71-155.4,74.6 c-50.1,2.7-98.4-9.1-135.8-33.4c-44.3-28.7-70.2-72.5-73-123.5c-2.7-49.6,17-95.2,55.4-128.4c36.7-31.7,88.3-50.3,149.3-53.8 c44.9-2.5,87-0.5,125.8,5.9c-5.2-30.9-15.6-55.5-31.2-73.2c-21.4-24.4-54.5-36.8-98.3-37.1c-0.4,0-0.8,0-1.2,0 c-35.2,0-83,9.7-113.4,55L261.2,327c40.8-60.6,107-94,186.6-94c0.6,0,1.2,0,1.8,0c133.1,0.8,212.4,82.3,220.3,224.5 c4.5,1.9,9,3.9,13.4,5.9c62.1,29.2,107.5,73.4,131.4,127.9c33.2,75.9,36.3,199.6-64.5,298.3C673.1,965,579.6,999.1,447,1000 L446.7,1000L446.7,1000z M488.5,512.9c-10.1,0-20.3,0.3-30.8,0.9c-76.5,4.3-124.2,39.4-121.5,89.3c2.8,52.3,60.5,76.6,116,73.6 c51-2.7,117.4-22.6,128.6-154.6C552.6,516,521.7,512.9,488.5,512.9z"/></g></symbol> <symbol id="icon-bs" viewBox="0 0 568 501"><g><path d="M123.121 33.6637C188.241 82.5526 258.281 181.681 284 234.873C309.719 181.681 379.759 82.5526 444.879 33.6637C491.866 -1.61183 568 -28.9064 568 57.9464C568 75.2916 558.055 203.659 552.222 224.501C531.947 296.954 458.067 315.434 392.347 304.249C507.222 323.8 536.444 388.56 473.333 453.32C353.473 576.312 301.061 422.461 287.631 383.039C285.169 375.812 284.017 372.431 284 375.306C283.983 372.431 282.831 375.812 280.369 383.039C266.939 422.461 214.527 576.312 94.6667 453.32C31.5556 388.56 60.7778 323.8 175.653 304.249C109.933 315.434 36.0535 296.954 15.7778 224.501C9.94525 203.659 0 75.2916 0 57.9464C0 -28.9064 76.1345 -1.61183 123.121 33.6637Z"/></g></symbol> <symbol id="icon-gn" viewBox="0 0 6550.8 5359.7"><path fill="#0C9D58" d="M5210.8 3635.7c0 91.2-75.2 165.9-167.1 165.9H1507c-91.9 0-167.1-74.7-167.1-165.9V165.9C1339.9 74.7 1415.1 0 1507 0h3536.8c91.9 0 167.1 74.7 167.1 165.9v3469.8z"/><polygon opacity=".2" fill="#004D40" points="5210.8,892 3885.3,721.4 5210.8,1077"/><path opacity=".2" fill="#004D40" d="M3339.3 180.9L1332 1077.2l2218.5-807.5v-2.2c-39-83.6-134-122.6-211.2-86.6z"/><path opacity=".2" fill="#FFFFFF" d="M5043.8 0H1507c-91.9 0-167.1 74.7-167.1 165.9v37.2c0-91.2 75.2-165.9 167.1-165.9h3536.8c91.9 0 167.1 74.7 167.1 165.9v-37.2C5210.8 74.7 5135.7 0 5043.8 0z"/><path fill="#EA4335" d="M2198.2 3529.1c-23.9 89.1 23.8 180 106 202l3275.8 881c82.2 22 169-32.9 192.8-122l771.7-2880c23.9-89.1-23.8-180-106-202l-3275.8-881c-82.2-22-169 32.9-192.8 122l-771.7 2880z"/><polygon opacity=".2" fill="#3E2723" points="5806.4,2638.1 5978.7,3684.8 5806.4,4328.1"/><polygon opacity=".2" fill="#3E2723" points="3900.8,764.1 4055.2,805.6 4151,1451.6"/><path opacity=".2" fill="#FFFFFF" d="M6438.6 1408.1l-3275.8-881c-82.2-22-169 32.9-192.8 122l-771.7 2880c-1.3 4.8-1.6 9.7-2.5 14.5l765.9-2858.2c23.9-89.1 110.7-144 192.8-122l3275.8 881c77.7 20.8 123.8 103.3 108.5 187.6l5.9-21.9c23.8-89.1-23.9-180-106.1-202z"/><path fill="#FFC107" d="M4778.1 3174.4c31.5 86.7-8.1 181.4-88 210.5L1233.4 4643c-80 29.1-171.2-18-202.7-104.7L10.9 1736.5c-31.5-86.7 8.1-181.4 88-210.5L3555.6 267.9c80-29.1 171.2 18 202.7 104.7l1019.8 2801.8z"/><path opacity=".2" fill="#FFFFFF" d="M24 1771.8c-31.5-86.7 8.1-181.4 88-210.5L3568.7 303.1c79.1-28.8 169 17.1 201.5 102l-11.9-32.6c-31.6-86.7-122.8-133.8-202.7-104.7L98.9 1526c-80 29.1-119.6 123.8-88 210.5l1019.8 2801.8c.3.9.9 1.7 1.3 2.7L24 1771.8z"/><path fill="#4285F4" d="M5806.4 5192.2c0 92.1-75.4 167.5-167.5 167.5h-4727c-92.1 0-167.5-75.4-167.5-167.5V1619.1c0-92.1 75.4-167.5 167.5-167.5h4727c92.1 0 167.5 75.4 167.5 167.5v3573.1z"/><path fill="#FFFFFF" d="M4903.8 2866H3489.4v-372.2h1414.4c41.1 0 74.4 33.3 74.4 74.4v223.3c0 41.1-33.3 74.5-74.4 74.5zM4903.8 4280.3H3489.4v-372.2h1414.4c41.1 0 74.4 33.3 74.4 74.4v223.3c0 41.2-33.3 74.5-74.4 74.5zM5127.1 3573.1H3489.4v-372.2h1637.7c41.1 0 74.4 33.3 74.4 74.4v223.3c0 41.2-33.3 74.5-74.4 74.5z"/><path opacity=".2" fill="#1A237E" d="M5638.9 5322.5h-4727c-92.1 0-167.5-75.4-167.5-167.5v37.2c0 92.1 75.4 167.5 167.5 167.5h4727c92.1 0 167.5-75.4 167.5-167.5V5155c0 92.1-75.4 167.5-167.5 167.5z"/><path opacity=".2" fill="#FFFFFF" d="M911.9 1488.8h4727c92.1 0 167.5 75.4 167.5 167.5v-37.2c0-92.1-75.4-167.5-167.5-167.5h-4727c-92.1 0-167.5 75.4-167.5 167.5v37.2c0-92.1 75.4-167.5 167.5-167.5z"/><path fill="#FFFFFF" d="M2223.9 3238.2v335.7h481.7c-39.8 204.5-219.6 352.8-481.7 352.8-292.4 0-529.5-247.3-529.5-539.7s237.1-539.7 529.5-539.7c131.7 0 249.6 45.3 342.7 134v.2l254.9-254.9c-154.8-144.3-356.7-232.8-597.7-232.8-493.3 0-893.3 399.9-893.3 893.3s399.9 893.3 893.3 893.3c515.9 0 855.3-362.7 855.3-873 0-58.5-5.4-114.9-14.1-169.2h-841.1z"/><g opacity=".2" fill="#1A237E"><path d="M2233.2 3573.9v37.2h472.7c3.5-12.2 6.5-24.6 9-37.2h-481.7z"/><path d="M2233.2 4280.3c-487.1 0-882.9-389.9-892.8-874.7-.1 6.2-.5 12.4-.5 18.6 0 493.4 399.9 893.3 893.3 893.3 515.9 0 855.3-362.7 855.3-873 0-4.1-.5-7.9-.5-12-11.1 497-347.4 847.8-854.8 847.8zM2575.9 2981.3c-93.1-88.6-211.1-134-342.7-134-292.4 0-529.5 247.3-529.5 539.7 0 6.3.7 12.4.9 18.6 9.9-284.2 242.4-521.1 528.6-521.1 131.7 0 249.6 45.3 342.7 134v.2l273.5-273.5c-6.4-6-13.5-11.3-20.1-17.1L2576 2981.5l-.1-.2z"/></g><path opacity=".2" fill="#1A237E" d="M4978.2 2828.7v-37.2c0 41.1-33.3 74.4-74.4 74.4H3489.4v37.2h1414.4c41.1.1 74.4-33.2 74.4-74.4zM4903.8 4280.3H3489.4v37.2h1414.4c41.1 0 74.4-33.3 74.4-74.4v-37.2c0 41.1-33.3 74.4-74.4 74.4zM5127.1 3573.1H3489.4v37.2h1637.7c41.1 0 74.4-33.3 74.4-74.4v-37.2c0 41.1-33.3 74.4-74.4 74.4z"/><radialGradient id="a" cx="1476.404" cy="434.236" r="6370.563" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff" stop-opacity=".1"/><stop offset="1" stop-color="#fff" stop-opacity="0"/></radialGradient><path fill="url(#a)" d="M6438.6 1408.1l-1227.7-330.2v-912c0-91.2-75.2-165.9-167.1-165.9H1507c-91.9 0-167.1 74.7-167.1 165.9v908.4L98.9 1526c-80 29.1-119.6 123.8-88 210.5l733.5 2015.4v1440.3c0 92.1 75.4 167.5 167.5 167.5h4727c92.1 0 167.5-75.4 167.5-167.5v-826.9l738.3-2755.2c23.8-89.1-23.9-180-106.1-202z"/></symbol> </defs></svg> <header id="header"> <div class="logo"><a href="/"><svg><title>GIGAZINE ホーム</title><use xlink:href="#logo"></use></svg></a></div> <div id="Google_TH"><!-- /4330625/Google_TH --> <div id='div-gpt-ad-1664264689307-0'> <script> if( (navigator.userAgent.indexOf('iPhone') > 0 && navigator.userAgent.indexOf('iPad') == -1) || (navigator.userAgent.indexOf('Android') > 0 && navigator.userAgent.indexOf('Mobile') > 0) || navigator.userAgent.indexOf('Windows Phone') > 0 ){ }else{ let id = 'div-gpt-ad-1664264689307-0'; let target = document.getElementById(id); target.style.minHeight = '90px'; target.style.minWidth = '728px'; googletag.cmd.push(function() {googletag.display(id);}); } </script> </div></div> <div id="header-social-button-box"> <script>function switchDisplay(){ obj=document.getElementById('gscopen').style; obj.display=(obj.display=='none')?'block':'none'; }</script> <a class="header-social-button fl-user" onclick="switchDisplay();"><svg><title>login</title><use xlink:href="#icon-user"></use></svg></a> </div> <div id="gscopen" style="display:none;"> <div class="gscopen"> <div class="gscmenu" style="width: 360px; padding: 10px;"> <div> <div style="max-width:360px;margin: 0 auto"> <div style="font-size: 1.6rem;">GIGAZINEにログイン</div> <a href="https://gigazine.net/club/" style="color: #008da7;">メンバー登録はココをクリック</a> <form id="loginForm" method="post" action="https://gigazine.net/" > <div class='hiddenFields'> <input type="hidden" name="ACT" value="9" /> <input type="hidden" name="RET" value="/gsc/" /> <input type="hidden" name="site_id" value="1" /> <input type="hidden" name="csrf_token" value="1c4fd3aa907443a4be96bb3096e7df5b6b5f43f6" /> </div> <p class="input"> <label style="color: gray;">ユーザー名</label><br> <input type="text" name="username" value="" maxlength="75" size="25"> </p> <p class="input"> <label style="color: gray;">パスワード</label> - <a href="/club/forgot_password" style="color: #008da7;">パスワードの再発行</a><br> <input type="password" name="password" value="" maxlength="75" size="25"> </p> <label class="input" id="auto_login" style="color: gray;"><input type="checkbox" name="auto_login" value="1"><span style="margin-left: 6px;">ログインしたままにする</span></label> <p class="input"><input type="submit" name="submit" value="ログイン" class="button-exp-style"></p> </form> </div></div> </div> </div> </div> </header> <!-- a_lib_header_no_login_ad --> <div id="main"> <div id="article"> <!-- ad_flag: FALSE --><!-- gpublic_ASO --><div class="sbn"> <div id="Google_TC"><!-- /4330625/Google_TC --> <div id='div-gpt-ad-1533535919247-0'> <script> googletag.cmd.push(function() {googletag.display('div-gpt-ad-1533535919247-0');}); </script> </div> </div> </div> <!-- 20141031_GSC_3 --> <div class="cntimage"><!-- ←20140212 --> <div style="width:100%;position:relative;"> <time datetime="2024-02-28T07:00:00+09:00" class="yeartime">2024年02月28日 07時00分</time> <span class="yeartime p-category"><a href="/news/C4/">ソフトウェア</a></span> </div> <style> .p-category{ position: absolute; right: 2px; } </style> <h1 class="title">Appleは自らがPWAを廃止した行為を「EUのせい」と責任転嫁しようとしているとの指摘</h1> <!-- google_ad_section_start --> <p class="preface"></p><a href="https://i.gzn.jp/img/2024/02/28/apple-pwa-dma/00.jpg" target="_blank"><img src="https://i.gzn.jp/img/2024/02/28/apple-pwa-dma/00_m.jpg" border="0" class="lzsmall img-standard-size" alt=""></a><p class="preface"> <br /> ウェブサイト上で利用できるサービスを端末上で再現する「<b><a href="https://support.google.com/chrome/answer/9658361?co=GENIE.Platform%3DiOS&oco=1" target="_blank">プログレッシブウェブアプリ(PWA)</a></b>」のサポートを、Appleは何の前触れもなく廃止しました。これはEUで施行されたデジタル市場法(DMA)に準拠するためだったのですが、そのようなAppleの言い分は言い訳に過ぎず、競合他社を蹴落とす狙いがあるとして、ChromeやEdgeの開発をリードしてきたアレックス・ラッセル氏が強く非難しています。<br /> <br /> <b>Home Screen Advantage - Infrequently Noted</b><br /> <b><a href="https://infrequently.org/2024/02/home-screen-advantage/" target="_blank">https://infrequently.org/2024/02/home-screen-advantage/</a></b><br /> <br /> iOS 17.4のベータ版においてPWAのサポートが廃止されていることが<b><a href="https://gigazine.net/news/20240209-apple-pwa-support-remove/" target="_blank">明らかになった</a></b>のは2024年2月初旬のこと。後にAppleから「DMAによりWebKit以外のブラウザエンジンをiOSで許可することになったが、WebKitを念頭に置いて構築されたPWAのサポートを別のブラウザエンジンに拡張するのは現実的ではない」との<b><a href="https://gigazine.net/news/20240216-ios-17-4-removes-web-apps-pwa/" target="_blank">説明</a></b>が行われ、EU圏内でPWAのサポートが終わることが確定しました。<br /> <br /> ラッセル氏は「一読するとDMAの施行により廃止を余儀なくされたように思えますが、これはウェブがApp Storeにとって真の脅威とならないようにし、自身の悪意ある選択を規制当局のせいにしようとするAppleの衝撃的な試みなのです」と指摘し、Appleがむちゃくちゃなことを言っているとしていくつかの意見を述べました。<br /> <br /> DMAは2022年に施行されたEUの法律で、この法律によりAppleを含めたいくつかの企業に複数の規制が課されることとなりました。規制準拠のタイムリミットは2024年3月6となっていて、各企業はこの日までの対応を迫られています。AppleはApp Store以外のアプリストアを経由したサイドローティングや、App Store外のアプリ内決済手段導入等の<b><a href="https://gigazine.net/news/20240126-apple-third-party-app-stores/" target="_blank">対応</a></b>を取らざるを得なくなったほか、WebKit以外のブラウザエンジンもほとんど渋々認可しました。<br /> </p><a href="https://i.gzn.jp/img/2024/02/28/apple-pwa-dma/01.jpg" target="_blank"><img src="https://i.gzn.jp/img/2024/02/28/apple-pwa-dma/01_m.jpg" border="0" class="lzsmall" alt=""></a><p class="preface"> <br /> ところが、Appleが実際に打ち出したのは強く規制に縛られた不自由極まりない機能ばかりでした。例えばサイドローディングは許可されたもののApp Store以外のアプリ配布システムの構築には<b><a href="https://gigazine.net/news/20240126-apple-third-party-app-stores/" target="_blank">厳しい条件</a></b>が課されており、アプリ内決済については12%~27%の手数料を徴収するといったサービス事業者にとって優しくないものでした。<br /> <br /> ブラウザエンジンについても同様で、開発条件として多数の要件を設けた上での認可という形が取られており、タイムリミットの数週間前にようやくAPIが公開されるという始末になっています。おまけにこれら機能が認められたのはDMAが施行されるEU圏内のみであり、その他の地域では引き続き以前までのAppleのルールの中で開発者はやりくりしていかなければなりません。<br /> <br /> このような状況となったことをブラウザの開発者たちは嘆き、Firefox開発元のMozillaは「Firefoxのようなブラウザに2つのブラウザの構築と保守を強いることになります。ブラウザの開発を可能な限り困難なものにすることで、消費者に選択肢を与えないようにするAppleの戦略です。非常に失望しています」と<b><a href="https://gigazine.net/news/20240129-apple-new-browser-rule-painful-for-mozilla/" target="_blank">語って</a></b>います。<br /> </p><a href="https://i.gzn.jp/img/2024/02/28/apple-pwa-dma/02.jpg" target="_blank"><img src="https://i.gzn.jp/img/2024/02/28/apple-pwa-dma/02_m.jpg" border="0" class="lzsmall" alt=""></a><p class="preface"> <br /> これに加え、WebKit以外の面倒は見きれないという建前で、ついでのような形で廃止されたPWA。ラッセル氏はPWA廃止に関するAppleのQ&Aを引用し、Appleの回答は本来の意図を包み隠した言い訳に過ぎないと説明しています。<br /> <br /> Appleは、「EUのユーザーはなぜホーム画面上のウェブアプリ(PWA)にアクセスできないのですか?」という質問に対し、「DMAを順守するため、AppleはEUのデベロッパーとユーザーのために、600以上の新しいAPIと幅広いデベロッパーツールを含む新しい機能を追加するエンジニアリング作業を行いました」と答えになっているようで全くなっていない言葉を返しています。<br /> <br /> ラッセル氏はこれを取り上げて「Appleは、『2007年以来iOSの根幹をなしてきた機能をなぜEUだけで壊したのですか?』という質問に、『コンプライアンスを回避するための訴訟で我々はすっかり疲れてしまった。その上、EUの意地悪な連中が我々に追加で仕事をさせた。不公平極まりない』と返したに過ぎません」と批判。これは、そもそも規制以前からやろうと思えばできたことをやらなかったAppleの怠慢だとの考えを示しています。<br /> </p><a href="https://i.gzn.jp/img/2024/02/28/apple-pwa-dma/03.jpg" target="_blank"><img src="https://i.gzn.jp/img/2024/02/28/apple-pwa-dma/03_m.jpg" border="0" class="lzsmall" alt=""></a><p class="preface"> <br /> Appleは基本的に自社のルールに従わせることで強固なセキュリティを維持しており、代替ブラウザに規制を課していることについても、「悪意のあるウェブアプリが他のウェブアプリからデータを読み取り、ユーザーの同意なしにユーザーのカメラ、マイク、位置情報にアクセスするためのパーミッションを奪還する可能性があり、またウェブアプリをシステムにインストールする懸念もある」という観点からの処置であると説明しています。<br /> <br /> ところが、ラッセル氏はこれについて「Appleは、ホームスクリーンにアイコンを追加したり、アプリをインストールしたりするシステムAPIを完全にコントロールしているので、このようなことは起こらないとわかっているはずです」と指摘し、これまた対応を行わない言い訳であると考察しました。<br /> <br /> ラッセル氏は「Appleの明らかな戦略は、iOSにブラウザを移植するコストを上げ、競合するブラウザの価値を下げることです。他のブラウザが使い物にならないようにルールを設け、セキュリティに関する一連の偽りの言い訳で正当化しています。不愉快で、図々しく、DMAに違反している可能性が高く、法的紛争に発展する可能性があります」と述べました。<br /> </p> <!-- google_ad_section_end --> <div style="text-align: center; margin: 10px auto 0px;"><div id="URLClip" style="width:300px; height:40px; border: 2px solid #bbb; border-radius: 3px; background: white; padding: 8px 0; text-align: center; position: relative; cursor: pointer; color: #222; font-size: 14px; font-weight: 700; display: inline-block; vertical-align: middle;">この記事のタイトルとURLをコピーする</div></div> </div><!-- ←20140212 --> <!-- gpublic_ASO --> <div id="EndFooter"> <div id='EF_Left'> <!-- /4330625/Google_EF/Google_EF_2 --> <div id='div-gpt-ad-1524638328920-0'> <script> googletag.cmd.push(function() {googletag.display('div-gpt-ad-1524638328920-0');}); </script> </div> </div> <div id='EF_Right'> <!-- /4330625/Google_EF --> <div id='div-gpt-ad-1583371000737-0'> <script> if( !((navigator.userAgent.indexOf('iPhone') > 0 && navigator.userAgent.indexOf('iPad') == -1) || (navigator.userAgent.indexOf('Android') > 0 && navigator.userAgent.indexOf('Mobile') > 0) || navigator.userAgent.indexOf('Windows Phone') > 0 )){ googletag.cmd.push(function() {googletag.display('div-gpt-ad-1583371000737-0');}); } </script> </div> </div> </div> <script data-cfasync="false" src="https://i.gzn.jp/img/-side-ad.js"></script> <style> #banner-ef { display:none; height: 250px; text-align:center; margin: 20px auto 0 0; } #banner-ef>div{ width: 300px; height: 250px; margin: auto; } #banner-ef img{ border: 1px solid #e1e1e1; } @media (min-width: 810px) { #banner-ef { margin: 20px auto 0 4px; } #banner-ef>div{ margin: 0; } } </style> <div id="banner-ef"></div> <script data-cfasync="false"> { let adblock = false; if(!document.getElementById('F1qAYhOnM7DF6mEd')){ adblock = true; } if(adblock){ window.gbcmd.push(gb=>{ const pattern = gb.getFeatureValue("202405-endfooter-secret-club", -1); console.log("pattern:", pattern ); if (1 <= pattern && pattern <= 152){ const bannerDiv = document.getElementById("banner-ef"); bannerDiv.style.display = "block"; const img = document.createElement('img'); img.src = `https://i.gzn.jp/img/gsc/202405-banner/20240524_${pattern}.png`; const secretClubLink = document.createElement('a'); secretClubLink.href = "https://gigazine.net/club/"; secretClubLink.target = "_blank"; secretClubLink.appendChild(img); const wrapperDiv = document.createElement('div'); wrapperDiv.id = `secret-club-banner-${pattern}`; wrapperDiv.appendChild(secretClubLink); bannerDiv.appendChild(wrapperDiv); } }) } } </script> <p class="article"><b>・関連記事</b><br /> <b><a href="https://gigazine.net/news/20240209-apple-pwa-support-remove" onclick="ga('send', 'event', 'kanren', '20240228-apple-pwa-dma', '20240209-apple-pwa-support-remove')" target="_blank">AppleがiOS 17.4のベータ版でPWAのサポートを削除していることが明らかに - GIGAZINE</a></b><br /> <br /> <b><a href="https://gigazine.net/news/20240227-apple-drop-iphone-pwa-scrutiny-eu" onclick="ga('send', 'event', 'kanren', '20240228-apple-pwa-dma', '20240227-apple-drop-iphone-pwa-scrutiny-eu')" target="_blank">Appleの「iPhoneでのPWA廃止」についてEUの規制当局が調査を開始したとの報道 - GIGAZINE</a></b><br /> <br /> <b><a href="https://gigazine.net/news/20240126-ios-17-4-webkit-alternative-browser-engines" onclick="ga('send', 'event', 'kanren', '20240228-apple-pwa-dma', '20240126-ios-17-4-webkit-alternative-browser-engines')" target="_blank">AppleがついにChromeとFirefoxのフルバージョンをiPhone上で動かすことを許可 - GIGAZINE</a></b><br /> <br /> <b><a href="https://gigazine.net/news/20240222-apple-meta-microsoft-eu-lobby" onclick="ga('send', 'event', 'kanren', '20240228-apple-pwa-dma', '20240222-apple-meta-microsoft-eu-lobby')" target="_blank">「App Store以外のアプリストア設立」を巡るAppleの厳しすぎる条件を緩和するべくMicrosoftとMetaがロビー活動を展開している - GIGAZINE</a></b><br /> <br /> </p> <!-- gpublic_ASO --> <div style="max-width:100%; overflow: hidden;"> <div id='div-gpt-ad-1583371000737-1'> <script> if( (navigator.userAgent.indexOf('iPhone') > 0 && navigator.userAgent.indexOf('iPad') == -1) || (navigator.userAgent.indexOf('Android') > 0 && navigator.userAgent.indexOf('Mobile') > 0) || navigator.userAgent.indexOf('Windows Phone') > 0 ){ googletag.cmd.push(function() {googletag.display('div-gpt-ad-1583371000737-1');}); } </script> </div> </div> <div class="rlcontents-s"> <p class="preface"><b>・関連コンテンツ</b></p> <ul id="rl-list"><li class="rl-list-item"> <div class="rl-list-item-image"> <a href="/news/20220802-apple-pay-support-third-party-browsers/" onclick="ga('send', 'event', 'kanrencontents', '20240228-apple-pwa-dma', '20220802-apple-pay-support-third-party-browsers')"><img data-src="https://i.gzn.jp/img/2022/08/02/apple-pay-support-third-party-browsers/00_m.jpg" class="lazyload"></a> </div> <div class="rl-list-item-link"> <a href="/news/20220802-apple-pay-support-third-party-browsers/" onclick="ga('send', 'event', 'kanrencontents', '20240228-apple-pwa-dma', '20220802-apple-pay-support-third-party-browsers')">Apple PayがChromeなどの非Safariブラウザにもついに対応することがiOS 16のベータ版で判明、EUのデジタル市場法に対応か</a> </div> </li> <li class="rl-list-item"> <div class="rl-list-item-image"> <a href="/news/20240216-ios-17-4-removes-web-apps-pwa/" onclick="ga('send', 'event', 'kanrencontents', '20240228-apple-pwa-dma', '20240216-ios-17-4-removes-web-apps-pwa')"><img data-src="https://i.gzn.jp/img/2024/02/16/ios-17-4-removes-web-apps-pwa/00_m.jpg" class="lazyload"></a> </div> <div class="rl-list-item-link"> <a href="/news/20240216-ios-17-4-removes-web-apps-pwa/" onclick="ga('send', 'event', 'kanrencontents', '20240228-apple-pwa-dma', '20240216-ios-17-4-removes-web-apps-pwa')">AppleがiOSからPWAのサポートを削除したことを認める、デジタル市場法への対応で影響はEU圏のユーザーに限定</a> </div> </li> <li class="rl-list-item"> <div class="rl-list-item-image"> <a href="/news/20240302-apple-pwa-support-not-remove/" onclick="ga('send', 'event', 'kanrencontents', '20240228-apple-pwa-dma', '20240302-apple-pwa-support-not-remove')"><img data-src="https://i.gzn.jp/img/2024/03/02/apple-pwa-support-not-remove/00_m.jpg" class="lazyload"></a> </div> <div class="rl-list-item-link"> <a href="/news/20240302-apple-pwa-support-not-remove/" onclick="ga('send', 'event', 'kanrencontents', '20240228-apple-pwa-dma', '20240302-apple-pwa-support-not-remove')">Appleが「iOS 17.4でのPWA廃止」を撤回すると発表</a> </div> </li> <li class="rl-list-item"> <div class="rl-list-item-image"> <a href="/news/20240520-apple-third-party-browser-geofenced-eu/" onclick="ga('send', 'event', 'kanrencontents', '20240228-apple-pwa-dma', '20240520-apple-third-party-browser-geofenced-eu')"><img data-src="https://i.gzn.jp/img/2024/05/20/apple-third-party-browser-geofenced-eu/00_m.jpg" class="lazyload"></a> </div> <div class="rl-list-item-link"> <a href="/news/20240520-apple-third-party-browser-geofenced-eu/" onclick="ga('send', 'event', 'kanrencontents', '20240228-apple-pwa-dma', '20240520-apple-third-party-browser-geofenced-eu')">Appleがサードパーティ製ブラウザエンジンのテストを「EU内に物理的に存在するデバイス」に制限していると報じられる</a> </div> </li> <li class="rl-list-item"> <div class="rl-list-item-image"> <a href="/news/20240126-ios-17-4-webkit-alternative-browser-engines/" onclick="ga('send', 'event', 'kanrencontents', '20240228-apple-pwa-dma', '20240126-ios-17-4-webkit-alternative-browser-engines')"><img data-src="https://i.gzn.jp/img/2024/01/26/ios-17-4-webkit-alternative-browser-engines/00_m.jpg" class="lazyload"></a> </div> <div class="rl-list-item-link"> <a href="/news/20240126-ios-17-4-webkit-alternative-browser-engines/" onclick="ga('send', 'event', 'kanrencontents', '20240228-apple-pwa-dma', '20240126-ios-17-4-webkit-alternative-browser-engines')">AppleがついにChromeとFirefoxのフルバージョンをiPhone上で動かすことを許可</a> </div> </li> <li class="rl-list-item"> <div class="rl-list-item-image"> <a href="/news/20221214-apple-allow-third-party-app-stores/" onclick="ga('send', 'event', 'kanrencontents', '20240228-apple-pwa-dma', '20221214-apple-allow-third-party-app-stores')"><img data-src="https://i.gzn.jp/img/2022/12/14/apple-allow-third-party-app-stores/00_m.jpg" class="lazyload"></a> </div> <div class="rl-list-item-link"> <a href="/news/20221214-apple-allow-third-party-app-stores/" onclick="ga('send', 'event', 'kanrencontents', '20240228-apple-pwa-dma', '20221214-apple-allow-third-party-app-stores')">AppleがiPhoneで「App Store以外のアプリストア」を初めて許可するべく準備を進めている</a> </div> </li> <li class="rl-list-item"> <div class="rl-list-item-image"> <a href="/news/20200729-app-store-for-developers/" onclick="ga('send', 'event', 'kanrencontents', '20240228-apple-pwa-dma', '20200729-app-store-for-developers')"><img data-src="https://i.gzn.jp/img/2020/07/29/app-store-for-developers/00.jpg" class="lazyload"></a> </div> <div class="rl-list-item-link"> <a href="/news/20200729-app-store-for-developers/" onclick="ga('send', 'event', 'kanrencontents', '20240228-apple-pwa-dma', '20200729-app-store-for-developers')">App Storeは開発者に「門を広く開いている」とティム・クックCEOが市場独占を否定</a> </div> </li> <li class="rl-list-item"> <div class="rl-list-item-image"> <a href="/news/20230206-google-experiments-non-webkit-blink-browser/" onclick="ga('send', 'event', 'kanrencontents', '20240228-apple-pwa-dma', '20230206-google-experiments-non-webkit-blink-browser')"><img data-src="https://i.gzn.jp/img/2023/02/06/google-experiments-non-webkit-blink-browser/00_m.jpg" class="lazyload"></a> </div> <div class="rl-list-item-link"> <a href="/news/20230206-google-experiments-non-webkit-blink-browser/" onclick="ga('send', 'event', 'kanrencontents', '20240228-apple-pwa-dma', '20230206-google-experiments-non-webkit-blink-browser')">Googleが「iOS向けブラウザアプリで強制されているWebKit採用」に反するBlinkベースのiOS版Chromeを開発中</a> </div> </li> </ul> </div> <nav><ul id="next-prev"><li><p><< 次の記事</p><div><a href="https://gigazine.net/news/20240228-gasuya-desu-11/"><img data-src="https://i.gzn.jp/img/2024/02/28/gasuya-desu-11/00_m.png" class="lazyload"></a></div><p class="np-bg"><a href="https://gigazine.net/news/20240228-gasuya-desu-11/">「ガス屋で~す!!」第11話「勝負!ガス屋のフェスティバル!(2日目)」1年の集大成、そして……</a></p></li><li><p>前の記事 >></p><div><a href="https://gigazine.net/news/20240228-apple-vision-pro-front-glass-cracked/"><img data-src="https://i.gzn.jp/img/2024/02/28/apple-vision-pro-front-glass-cracked/00_m.jpg" class="lazyload"></a></div><p class="np-bg"><a href="https://gigazine.net/news/20240228-apple-vision-pro-front-glass-cracked/">何もしていないのに突然「Apple Vision Pro」のガラスにヒビが入ったとの報告が相次ぐ、修理費はなんと12万円</a></p> </li></ul></nav> <div class="items"> <p><time datetime="2024-02-28T07:00:00+09:00">2024年02月28日 07時00分00秒</time> in <a href="https://gigazine.net/news/C4/">ソフトウェア</a>, Posted by log1p_kr</p> <p>You can read the machine translated English article <strong><a href="/gsc_news/en/20240228-apple-pwa-dma" target="_blank">here</a></strong>.</p> </div><!-- end_.items --> </div><!-- end_#article --> <aside id="latest"> <!-- ad_flag: FALSE --><!-- gpublic_ASO --> <div id="LT"> <!-- /4330625/Google_LT --> <div id='div-gpt-ad-1524101924592-0'> <script> googletag.cmd.push(function() {googletag.display('div-gpt-ad-1524101924592-0');}); </script> </div></div> <h3>最新ニュース40件</h3> <ul id="list"></ul> <script data-cfasync="false"> fetch('/gsc/news_40?token=klc1qXWmf4BIJe0X') .then(r=>r.json()) .then(d=>d.map(e=>{ const li = document.createElement('li'); const a = document.createElement('a'); a.href = `/news/${e.url}/`; a.appendChild(document.createTextNode(e.title)); li.appendChild(a); return li; })) .then(li=>{ const fr = document.createDocumentFragment(); li.forEach(li=>fr.appendChild(li)); document.getElementById('list').appendChild(fr); }); </script> <!-- ad_flag: FALSE --><!-- gpublic_ASO --> <div id="LB"><div id="div-gpt-ad-1524100786099-0"></div></div> <script> googletag.cmd.push(function(){googletag.display('div-gpt-ad-1524100786099-0');}); </script> </aside><!-- end_#latest --> <aside id="sub"> <!-- gpublic_ASO --> <div id="subNav"> <dl class="list-1"> <dt>記事検索</dt> <dd id="searchform"> <form action="/gsc/search" method="get"> <input type="text" name="q" value="" max="40" placeholder="キーワード" required style="margin: 0 0 0 .5rem"> <input type="submit" value="検索" style="margin-left:0.5rem;background-color: #4d90fe;border: 1px solid #3079ed;border-radius: 5px;color: white;width: 56px;line-height: 1.6rem;"> </form> </dd> </dl> <dl class="list-2 navi-list-2col"> <dt>カテゴリ</dt> <dd><a href="https://gigazine.net/news/C7/"><i class="iconcat icon-catid7"></i><b>メモ</b></a></dd> <dd><a href="https://gigazine.net/news/C19/"><i class="iconcat icon-catid19"></i><b>ヘッドライン</b></a></dd> <dd><a href="https://gigazine.net/news/C12/"><i class="iconcat icon-catid12"></i><b>レビュー</b></a></dd> <dd><a href="https://gigazine.net/news/C22/"><i class="iconcat icon-catid22"></i><b>取材</b></a></dd> <dd><a href="https://gigazine.net/news/C17/"><i class="iconcat icon-catid17"></i><b>インタビュー</b></a></dd> <dd><a href="https://gigazine.net/news/C13/"><i class="iconcat icon-catid13"></i><b>試食</b></a></dd> <dd><a href="https://gigazine.net/news/C18/"><i class="iconcat icon-catid18"></i><b>モバイル</b></a></dd> <dd><a href="https://gigazine.net/news/C4/"><i class="iconcat icon-catid4"></i><b>ソフトウェア</b></a></dd> <dd><a href="https://gigazine.net/news/C5/"><i class="iconcat icon-catid5"></i><b>ネットサービス</b></a></dd> <dd><a href="https://gigazine.net/news/C37/"><i class="iconcat icon-catid37"></i><b>ウェブアプリ</b></a></dd> <dd><a href="https://gigazine.net/news/C6/"><i class="iconcat icon-catid6"></i><b>ハードウェア</b></a></dd> <dd><a href="https://gigazine.net/news/C30/"><i class="iconcat icon-catid30"></i><b>乗り物</b></a></dd> <dd><a href="https://gigazine.net/news/C29/"><i class="iconcat icon-catid29"></i><b>サイエンス</b></a></dd> <dd><a href="https://gigazine.net/news/C33/"><i class="iconcat icon-catid33"></i><b>生き物</b></a></dd> <dd><a href="https://gigazine.net/news/C9/"><i class="iconcat icon-catid9"></i><b>動画</b></a></dd> <dd><a href="https://gigazine.net/news/C23/"><i class="iconcat icon-catid23"></i><b>映画</b></a></dd> <dd><a href="https://gigazine.net/news/C38/"><i class="iconcat icon-catid38"></i><b>マンガ</b></a></dd> <dd><a href="https://gigazine.net/news/C20/"><i class="iconcat icon-catid20"></i><b>アニメ</b></a></dd> <dd><a href="https://gigazine.net/news/C10/"><i class="iconcat icon-catid10"></i><b>ゲーム</b></a></dd> <dd><a href="https://gigazine.net/news/C31/"><i class="iconcat icon-catid31"></i><b>デザイン</b></a></dd> <dd><a href="https://gigazine.net/news/C32/"><i class="iconcat icon-catid32"></i><b>アート</b></a></dd> <dd><a href="https://gigazine.net/news/C15/"><i class="iconcat icon-catid15"></i><b>食</b></a></dd> <dd><a href="https://gigazine.net/news/C14/"><i class="iconcat icon-catid14"></i><b>セキュリティ</b></a></dd> <dd><a href="https://gigazine.net/news/C8/"><i class="iconcat icon-catid8"></i><b>お知らせ</b></a></dd> <dd><a href="https://gigazine.net/news/C34/"><i class="iconcat icon-catid34"></i><b>ピックアップ</b></a></dd> <dd><a href="https://gigazine.net/news/C16/"><i class="iconcat icon-catid16"></i><b>コラム</b></a></dd> <dd><a href="https://gigazine.net/news/C36/"><i class="iconcat icon-catid36"></i><b>メンバー限定</b></a></dd> <dd><a href="https://gigazine.net/news/C21/"><i class="iconcat icon-catid21"></i><b>広告</b></a></dd> <dd><a href="https://gigazine.net/news/C45/"><i class="iconcat icon-catid45"></i><b>無料メンバー</b></a></dd> </dl> <dl class="list-3"> <dt>過去の記事</dt> <dd id="calendar"> <input type="date" id="calendar-datepicker" style="margin: 0 auto 8px; display:block; width: 200px; height:30px;" min="2005-07-23" max="2024-11-26" value="2024-11-26"> <button style="margin: auto; display:block; width: 200px; height:30px;" class="button-exp-style" onclick="(()=>{ window.location = '/news/' + getElementById('calendar-datepicker').value.replace(/-/g, '/'); })();">過去記事を見る</button> </dd> <dd id="Google_RT"> <!-- /4330625/Google_RT --> <div id="div-gpt-ad-1523935894717-2"> <script> if( (navigator.userAgent.indexOf('iPhone') > 0 && navigator.userAgent.indexOf('iPad') == -1) || (navigator.userAgent.indexOf('Android') > 0 && navigator.userAgent.indexOf('Mobile') > 0) || navigator.userAgent.indexOf('Windows Phone') > 0 ){ }else{ let id = 'div-gpt-ad-1523935894717-2'; let target = document.getElementById(id); target.style.height = '250px'; target.style.width = '300px'; googletag.cmd.push(function() {googletag.display(id);}); } </script> </div> </dd> </dl> </div><!-- end_#subNav --> <!-- a_lib_sub --> <!-- 20160726_ASO --> <div id="ranking-entry"><h3>人気記事ランキング</h3><p style="margin:.5rem"><small>直近24時間(1時間ごとに更新。5分ごとは<a href="https://gigazine.net/club/" target="_blank">こちら</a>)</small></p> <ol style="padding-left:1.8rem"> <li style="margin:.5rem 0"><a href="/news/20241124-dark-energy-from-black-holes/">ダークエネルギーが「逆再生ビッグバン」でブラックホールから生成されているとの研究結果が報告される</a></li><li style="margin:.5rem 0"><a href="/news/20241120-minecraft-theme-park/">あの「マインクラフト」が現実世界にテーマパークを開業、2026年~2027年にオープン予定</a></li><li style="margin:.5rem 0"><a href="/news/20241124-fiber-optic-splicer/">少しのズレも許されない光ファイバーを接合する方法</a></li><li style="margin:.5rem 0"><a href="/news/20241123-involute-gears/">インボリュート歯車の形は何が特別なのか?</a></li><li style="margin:.5rem 0"><a href="/news/20241124-github-copilot-improve-code-quality/">GitHub Copilotでコードの品質は改善されるのか?</a></li><li style="margin:.5rem 0"><a href="/news/20241125-kamvas-pro-19/">憧れのハイスペック液タブなのに手が届く価格帯の「Kamvas Pro 19」でプロのイラストレーターさんにお絵描きしてもらったレビュー</a></li><li style="margin:.5rem 0"><a href="/news/20230714-solar-ark/">新幹線から見える三洋電機が建てた巨大建造物「ソーラーアーク」を解体する「三洋岐阜更地化計画」が進行中なので壊される前に記録用に撮影しまくってきた</a></li><li style="margin:.5rem 0"><a href="/news/20241125-school-punished-student-ai-court/">「生徒手帳で禁止していなくても学校はAIでカンニングした生徒を罰してもよい」と裁判所が判決を下す</a></li><li style="margin:.5rem 0"><a href="/news/20241122-ban-free-plastic-bags-groceries/">小売店が「レジ袋を有料化」するとかえってレジ袋の販売数が増加することが研究で判明</a></li><li style="margin:.5rem 0"><a href="/news/20241125-st-peters-basilica-3d/">カトリック教会の総本山「サン・ピエトロ大聖堂」を誰でも自由に探索できる3Dマップが公開される</a></li></ol></div> <div id="yt-ranking"> <h3>人気動画</h3> <p id="yt-ranking-desc"><small>2024-11-18から2024-11-24の再生回数ランキング</small></p> <ul> <li><div><a href="https://www.youtube.com/watch?v=h9dNG7F2oVw" target="_blank"><img data-src="https://i.ytimg.com/vi/h9dNG7F2oVw/mqdefault.jpg" class="lazyload"></a></div> <div class="yt-ranking-link"><a href="https://www.youtube.com/watch?v=h9dNG7F2oVw" target="_blank">アンチレイプコンドーム「Rape-aXe」</a></div></li> <li><div><a href="https://www.youtube.com/watch?v=8uFdCM1Wn-E" target="_blank"><img data-src="https://i.ytimg.com/vi/8uFdCM1Wn-E/mqdefault.jpg" class="lazyload"></a></div> <div class="yt-ranking-link"><a href="https://www.youtube.com/watch?v=8uFdCM1Wn-E" target="_blank">ボディペイント姿でアザラシ猟の抗議活動を行うPETA</a></div></li> <li><div><a href="https://www.youtube.com/watch?v=2aqmv-PUS1c" target="_blank"><img data-src="https://i.ytimg.com/vi/2aqmv-PUS1c/mqdefault.jpg" class="lazyload"></a></div> <div class="yt-ranking-link"><a href="https://www.youtube.com/watch?v=2aqmv-PUS1c" target="_blank">シーシェパードのアディ・ギル号が沈没</a></div></li> <li><div><a href="https://www.youtube.com/watch?v=RXoBWF0k3cM" target="_blank"><img data-src="https://i.ytimg.com/vi/RXoBWF0k3cM/mqdefault.jpg" class="lazyload"></a></div> <div class="yt-ranking-link"><a href="https://www.youtube.com/watch?v=RXoBWF0k3cM" target="_blank">ブラックホールの重力レンズをシミュレートできる「Black Hole Vision」その1</a></div></li> <li><div><a href="https://www.youtube.com/watch?v=HzWAe2zuE9s" target="_blank"><img data-src="https://i.ytimg.com/vi/HzWAe2zuE9s/mqdefault.jpg" class="lazyload"></a></div> <div class="yt-ranking-link"><a href="https://www.youtube.com/watch?v=HzWAe2zuE9s" target="_blank">ブラックホールの重力レンズをシミュレートできる「Black Hole Vision」その2</a></div></li> <li><div><a href="https://www.youtube.com/watch?v=4mEokILM-Xs" target="_blank"><img data-src="https://i.ytimg.com/vi/4mEokILM-Xs/mqdefault.jpg" class="lazyload"></a></div> <div class="yt-ranking-link"><a href="https://www.youtube.com/watch?v=4mEokILM-Xs" target="_blank">Kindle2024年最新モデルの進化したページ送りやディスプレイを体感してみた</a></div></li> </ul> </div> <!-- ad_flag: FALSE --><!-- gpublic_ASO --> <!-- /4330625/Google_RB --> <div id="RB"> <div id='div-gpt-ad-1524184715175-0' style="text-align: center;"> <script> googletag.cmd.push(function() {googletag.display('div-gpt-ad-1524184715175-0');}); </script> </div></div> </aside><!-- end_#sub --> </div><!-- end_#main --> <footer> <dl class="navi-list-2col comments"> <dt><!-- footer --></dt> <dd><form name="iform" method="post" action="/news/contact2/" autocomplete="off" target="_blank"><i class="icon icon-ftid1"></i><input type="submit" value="誤字脱字の指摘" onclick="ga('send', 'event', 'outgoing', 'click', '/outgoing/gigazine.net/contact2');"><input type="hidden" name="memid" value="22887"><input type="hidden" name="inqtitle" value="Appleは自らがPWAを廃止した行為を「EUのせい」と責任転嫁しようとしているとの指摘"><input type="hidden" name="inqentryid" value="92203"><input type="hidden" name="inqurl_title" value="20240228-apple-pwa-dma"><input type="hidden" name="csrf_token" value="1c4fd3aa907443a4be96bb3096e7df5b6b5f43f6"></form></dd> <dd><a class="tarekomi" href="/news/contact3/" onclick="ga('send', 'event', 'outgoing', 'click', '/outgoing/gigazine.net/contact3');"><i class="icon icon-ftid2"></i><b>ネタのタレコミ</b></a></dd> <dd><a href="/news/contact4/" onclick="ga('send', 'event', 'outgoing', 'click', '/outgoing/gigazine.net/contact4');"><i class="icon icon-ftid3"></i><b>その他のお問い合わせ</b></a></dd> <dd><a href="https://gigazine.biz/" onclick="ga('send', 'event', 'outgoing', 'click', '/outgoing/gigazine.biz');" target="_blank" rel="nofollow"><i class="icon icon-ftid4"></i><b>広告掲載について</b></a></dd> <dd><a href="/news/about/" onclick="ga('send', 'event', 'outgoing', 'click', '/outgoing/gigazine.net/about');"><i class="icon icon-ftid5"></i><b>GIGAZINEについて</b></a></dd> <dd><a href="https://gigazine.co.jp/" onclick="ga('send', 'event', 'outgoing', 'click', '/outgoing/gigazine.co.jp');" target="_blank" rel="nofollow"><i class="icon icon-ftid6"></i><b>採用情報</b></a></dd> </dl> </footer> <!-- a_lib_footer --> <!-- Matomo --> <script type="text/javascript"> var _paq = window._paq = window._paq || []; /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ _paq.push(["setCookieDomain", "*.gigazine.net"]); _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="https://mt.gigazine.net/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '1']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })(); </script> <noscript><p><img src="https://mt.gigazine.net/matomo.php?idsite=1&rec=1" style="border:0;" alt="" /></p></noscript> <!-- End Matomo Code --> <script data-cfasync="false"> window.addEventListener('DOMContentLoaded',function(){ const clipButton = document.getElementById("URLClip"); clipButton.addEventListener("click", ()=>{ const text = `Appleは自らがPWAを廃止した行為を「EUのせい」と責任転嫁しようとしているとの指摘 - GIGAZINE https://gigazine.net/news/20240228-apple-pwa-dma/`; if (navigator.clipboard) {navigator.clipboard.writeText(text);} else { const cpdiv = document.createElement('textarea'); cpdiv.textContent = text; document.body.appendChild(cpdiv); const userAgent = window.navigator.userAgent.toLowerCase(); if(userAgent.indexOf('chrome') != -1 ){cpdiv.select();} else { const cprange = document.createRange(); cprange.selectNode(cpdiv); const selection = window.getSelection(); selection.removeAllRanges(); selection.addRange(cprange); } document.execCommand('copy'); document.body.removeChild(cpdiv); } clipButton.textContent = "コピーしました"; }); }); </script> <style> #donate_footer{ position: sticky; bottom: 0; background-color: white; width: 70%; margin: 0 auto; border: 1px solid gray; padding: 0 10px; transform: translateY(100%); display: grid; z-index: 1; } #donate_footer p{ border: 2px solid red; padding: 10px; border-radius: 16px; } #donate_footer_close { position: absolute; right: 0; top: 0; background: none; border: none; } #donate_footer.upMove{ animation: UpAnime 0.5s forwards; } @keyframes UpAnime{ from { opacity: 0; transform: translateY(100%); } to { opacity: 1; transform: translateY(0); } } #donate_footer.downMove{ animation: DownAnime 0.5s forwards; } @keyframes DownAnime{ from { opacity: 1; transform: translateY(0); } to { opacity: 1; transform: translateY(100%); } } #donate_footer_kifu { background-color: royalblue; color: white; border: none; padding: 3px 10px; font-weight: bold; border-radius: 4px; } #donate_dialog label { width: 80%; display: block; margin-left: auto; margin-right: auto; } #donate_dialog input { width: 100%; height: 2em; } #donate_dialog_submit_button { width: 80%; margin-top: 6px; margin-left: auto; margin-right: auto; display: block; background-color: royalblue; color: white; border: none; font-weight: bold; padding: 5px; border-radius: 5px; } </style> <div id="donate_footer" style="display:none;"> <p>お邪魔して申し訳ないです。読者のための記事を掲載し続けるため、どうかサーバー代として300円をご寄付いただけないでしょうか。</p> <button id="donate_footer_close">×</button> <div style="margin-left: auto;"> <button id="donate_footer_delay">いいえ、後で時間があれば</button> <a href="https://donate.stripe.com/fZe4io1XSbOo0yk9AB" target="_blank"><button id="donate_footer_kifu">はい、寄付します</button></a> </div> </div> <dialog id="donate_dialog"> <button id="donate_dialog_close">←</button> <form method="POST" action="https://docs.google.com/forms/u/0/d/e/1FAIpQLSeM-JwJuNTHw0cvBoqsf-WD7IHcpWN8NE0Id_04IiTX5pgePQ/formResponse" target="hidden_iframe" id="donate_remind_form" > <p> 喜んでメールでリマインドさせていただきます。 引き続き記事をお読みください。 </p> <label><span style="font-size: small;">メールアドレス</span><br> <input name="entry.936053808" type="email" > </label> <button type="submit" id="donate_dialog_submit_button">送信</button> </form> </dialog> <iframe name="hidden_iframe" style="display: none;"></iframe> <script src="https://i.gzn.jp/img/-side-ad.js"></script> <script> { let adblock = false; if(!document.getElementById('F1qAYhOnM7DF6mEd')){ adblock = true; } const sentDate = window.localStorage.getItem("donate_footer_sentDate"); const closeDate = window.localStorage.getItem("donate_footer_closeDate"); const donateFooter = document.getElementById("donate_footer"); const donateFooterScroll = ()=>{ if(window.scrollY >= 300){ donateFooter.classList.remove("downMove"); donateFooter.classList.add("upMove"); } else { if(donateFooter.classList.contains("upMove")){ donateFooter.classList.remove("upMove"); donateFooter.classList.add("downMove"); } } }; if(!window.localStorage.getItem("landing_flag_donate_footer")){ window.localStorage.setItem("landing_flag_donate_footer", Date.now()); } else { if( adblock && new Date("2024/08/01") < Date.now() && new Date("2024/09/01") > Date.now()){ if(!sentDate && closeDate < (Date.now() - 1000 * 3600 * 24)){ donateFooter.style.display = "grid"; document.addEventListener("scroll", donateFooterScroll); } } } const donateFooterClose = document.getElementById("donate_footer_close"); donateFooterClose.addEventListener("click", ()=>{ document.removeEventListener("scroll", donateFooterScroll); donateFooter.classList.remove("upMove"); donateFooter.classList.add("downMove"); window.localStorage.setItem("donate_footer_closeDate", Date.now()); window.setTimeout(()=>{ donateFooter.style.display = "none"; }, 1000); }); const donateDialog = document.getElementById("donate_dialog"); const donateFooterDelay = document.getElementById("donate_footer_delay"); donateFooterDelay.addEventListener("click", ()=>{donateDialog.showModal();}); const donateDialogClose = document.getElementById("donate_dialog_close"); donateDialogClose.addEventListener("click", ()=>{donateDialog.close();}); const donateFooterKifu = document.getElementById("donate_footer_kifu"); donateFooterKifu.addEventListener("click", ()=>{ document.removeEventListener("scroll", donateFooterScroll); window.localStorage.setItem("donate_footer_sentDate", Date.now()); donateFooter.classList.remove("upMove"); donateFooter.classList.add("downMove"); window.setTimeout(()=>{ donateFooter.style.display = "none"; }, 1000); }); const donateRemindForm = document.getElementById("donate_remind_form"); donateRemindForm.addEventListener("submit", ()=>{ donateDialog.close(); document.removeEventListener("scroll", donateFooterScroll); donateFooter.innerHTML = "<p>送信しました</p>"; window.localStorage.setItem("donate_footer_sentDate", Date.now()); window.setTimeout(()=>{ donateFooter.classList.remove("upMove"); donateFooter.classList.add("downMove"); window.setTimeout(()=>{ donateFooter.style.display = "none"; }, 1000); }, 1000); }); } </script> </body> </html><!-- comments_no_login -->