<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[40]</anchor-end> 多くの <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>は、単独の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>としてだけでなく、
他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>に組み込む (埋め込む) <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GUI</anchor> 部品 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ウィジェット</anchor>) として利用できる
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">API</anchor> を有しています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> 現代の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OS</anchor> のほとんどには<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>が標準搭載されており、
それを<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>が<dfn>埋め込みブラウザー</dfn>として利用できる <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OS</anchor>
標準の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">API</anchor> が提供されています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[42]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スマートフォンアプリ</anchor>は機能の一部または全部を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OS</anchor> の提供する
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>機能により実装していることがあり、これは<dfn>アプリ内ブラウザー</dfn>や
<dfn>Webビュー</dfn>などと呼ばれます。</p><section><h1>機能</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>は、通常の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>と一部異なる動作をする
(できる) 場合があります。</p><section><h1>Web プラットフォームの機能</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> 埋め込みブラウザーは、表示上は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">入れ子閲覧文脈</anchor>のように見えるかもしれませんが、
それ自体が単独の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>ですから、実際には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">最上位閲覧文脈</anchor>です。
複数の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">最上位閲覧文脈</anchor>を同時に持つことができるかは、実装次第です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> 新しい<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">最上位閲覧文脈</anchor>を開くときは通常の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>を使うような実装もあります。
新しい<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">最上位閲覧文脈</anchor>を開くオプションを提供せず、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>が新しい<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">最上位閲覧文脈</anchor>を求めた時であっても同じ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">最上位閲覧文脈</anchor>を使い続けるような実装もあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="70" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[70]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>による <code class="JS" xml:lang="en">window.close</code> が機能するかどうか、通常の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>とは異なる判断基準が必要かもしれません。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>では、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認証ダイアログ</anchor>、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ServiceWorker</anchor> や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">通知</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">全画面表示</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Geolocation API</anchor> など、
提供されない機能があるかもしれません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">navigate</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">fetch</anchor> でアクセスできる範囲を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>から制約できることもあります。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">navigate</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">navigation scope</anchor> を参照。</comment-p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="71" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[71]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>特有の不具合が生じることがあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[72]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">iOS</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Safari</anchor> を使った複数の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">facebook</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SmartNews</anchor> など)
で、初期<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">レンダリング</anchor>時点の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">viewport</anchor> の高さ (<code>innerHeight</code> や
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">position: fixed</anchor>; <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">top</anchor>: 0; <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bottom</anchor>: 0</code> な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>の高さなど)
が実際の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">viewport</anchor> の高さよりも大きい現象が確認されています。</p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">viewport</anchor> の上に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ</anchor>側の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>があり、その部分が高さに含まれているようです。</p><p>読み込み中のいずれかの時点で再計算されているらしく、いつの間にか正しい値が返されるようになり、
<code>bottom</code> の指定も正しい位置で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">レンダリング</anchor>されます。
ひどいことに、再計算の際に <code>resize</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>は発生していません。
<time>2017-03-01T08:19:28.200Z</time></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="73" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[73]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>部分の裏側に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">半透明</anchor>で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクロール</anchor>可能な上部の領域
(本来スクロールしないとレンダリングされないはずの部分) 
が少し見えるように実装されていたりもしますが、その辺も関係しているのでしょうか。</comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="75" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[75]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">履歴</anchor>移動で謎の <code xmlns="http://www.w3.org/1999/xhtml">resize</code> が発生することはあるようです。</comment-p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="125" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[125]</anchor-end> 
実装上の制約などのために一部の (あってもなくても大きな支障はない) 機能が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>では省かれることがあります。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>bfcache</anchor> </sw-see></p></section><section><h1>独自機能</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>は、通常の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>にない独自の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">API</anchor>
を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webページ</anchor>に提供できるかもしれません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> 表示される<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webページ</anchor>が限定される場合、本来なら<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web互換性</anchor>に影響するような独自処理を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>が行えることもあります。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> ただ、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用性</anchor>のため、そうした特殊な動作を使うのは、
一般の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサイト</anchor>ではなく、特定の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>でのみアクセスする特別な
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサイト</anchor>に限定するべきです。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="112" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[112]</anchor-end> 独自機能を追加する場合、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セキュリティー</anchor>問題を十分に検討するべきです。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="114" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[114]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>が登録した<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">個人情報</anchor>にアクセスできる特別な <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">API</anchor> 
を持った<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>を使って<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">掲示板</anchor>の
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> データを表示する時、悪意ある<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>の投稿が当該 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">API</anchor>
を使ってデータを取得できてしまわないよう注意が必要となります。</p></example><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="113" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[113]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>を受信した<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メール</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor>
の表示と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者インターフェイス</anchor>の機能の実装の両方に使っている <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MUA</anchor>
では、任意の第三者から送られてくる可能性がある<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メール</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor>
の表示で独自機能を使えてしまわないように注意しなければいけません。</p></example></section><section><h1>独自のセキュリティーモデル</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="97" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[97]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>によっては、埋め込んだ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>の独自の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セキュリティーモデル</anchor>の採用を認めていることがあります。
例えば、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">同一起源ポリシー</anchor>が一部緩和されていたり、
通常の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサイト</anchor>では認められないはずの <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor> への<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">リンク</anchor>が認められていたりするかもしれません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="98" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[98]</anchor-end> 
しかし、慎重に設計されている本来の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セキュリティーモデル</anchor>を崩すことになりますから、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セキュリティー</anchor>への影響を十分検証する必要があります。
ちょっと不便だから程度の理由で行うべきではありません。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="99" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[99]</anchor-end> 
例えば、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SNS</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">投稿</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> を表示する時、
通常の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>なら何も起こらないはずの悪意あるコードが、
セキュリティーの制約が緩和された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>では悪意通りに動作し、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>に害をもたらす危険性があります。</p></example></section><section><h1>識別情報</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> 埋め込みブラウザーは、埋め込んだ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>の独自の <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">User-Agent:</anchor></code>
や <code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">navigator.userAgent</anchor></code> の値を使うこともあれば、
元の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>の共通の値を使うこともあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> 一般の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサイト</anchor>を表示できる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ内ブラウザー</anchor>であれば、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサイト</anchor>側が <code class="HTTP" xml:lang="en">User-Agent:</code> や <code class="DOMi" xml:lang="en">Navigator</code>
によって挙動を変えることがあるので (ひどい話です)、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用性</anchor>のため、
元の値を変えるべきではありません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> しかしアクセス対象が特定のサイトに限定されており、通常の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>に無い特殊な機能を提供する場合には、
通常のアクセスとの区別のため、あるいは統計のため、異なる値を使う方が好ましいかもしれません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="116" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[116]</anchor-end> 
ただし、
<code>User-Agent:</code>
は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セキュリティー</anchor>機能ではありません。
<code>User-Agent:</code>
の値によって正規の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ</anchor>か否かを判断してはいけません。</p></section><section><h1>Web 互換性との関係</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[78]</anchor-end> <sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>Web互換性</anchor> </sw-see></p></section><section><h1>API</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="117" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[117]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>にブラウザーを埋め込む方法 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">API</anchor>) は、製品ごとに異なっています。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">標準化</anchor>された方法はありません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="80" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[80]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> の拡張:
<code>&lt;iframe sandbox&gt;</code>,
<code>&lt;iframe mozbrowser&gt;</code>,
<code>&lt;wevview&gt;</code>,
<code>&lt;x-ms-wevview&gt;</code>,
<code>&lt;portal&gt;</code>,
<code>&lt;fencedframe&gt;</code></p></section></section><section><h1>単独 Web ブラウザーとの関係</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[43]</anchor-end> こうした埋込み型 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>は、単独の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>と
(あるいは埋め込みブラウザー同士で) <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Cookie</anchor>
や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォーム</anchor>、表示<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">履歴</anchor>等のデータを共有していることもありますが、大抵は別管理になっています。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> 意図せず <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Cookie</anchor> や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認証</anchor>などの情報が共有され、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>側の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webアプリケーション</anchor>のセッションと外部の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>の情報が紐付けられてしまうことは避けなければなりません。<example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> 例えば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MUA</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>と通常の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Cookie</anchor>
が共有されていると、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メールアドレス</anchor>と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webアプリケーション</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アカウント</anchor>が意図せず紐付けされる危険性があります。</p></example></comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> 単独の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>と埋め込みブラウザーとで情報が共有されていて、
埋め込みブラウザーに特定アプリケーション用の特別な機能が提供されていると、
悪意ある第三者が当該アプリケーション製作者の想定しない方法でその機能を呼び出すことができる
(当該アプリケーション内ではあり得ない形の情報を単独の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>で通常の方法で保存し、
埋め込みブラウザーからそれを利用させることができる) かもしれず、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セキュリティー</anchor>上の懸念となり得ます。</comment-p></section><section><h1>重複</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="105" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[105]</anchor-end> 特定の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>の版を用いたい、
あるいは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラットフォーム</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>の版が古すぎる、
といったような理由で、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>を完全に組み込んだ形で利用される場合もあります。
(当該<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>の開発者にとっては既存の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>の流用ですが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラットフォーム</anchor>や他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>から見れば
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>機能が含まれる独自の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>ということになります。)</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="106" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[106]</anchor-end> ある時期の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Android</anchor> には、古い <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WebKit</anchor> から派生して開発が止まった
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Android Browser</anchor> と最新の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> があって、
どちらも同じ系譜の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">レンダリングエンジン</anchor>を用いていたものの、
実装としては完全に別物でした。</p></example><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="107" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[107]</anchor-end> ある<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ゲーム</anchor>専用<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラットフォーム</anchor>では、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラットフォーム</anchor>同梱の複数の特別な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>がそれぞれ異なる
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WebKit</anchor> 派生 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>を組み込んでおり、
それらとはまた別に単独の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>も提供されていたといいます。</p></example></section><section><h1>利用者インターフェイス</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[45]</anchor-end> 埋込み型 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>は当該<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>と統合された <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UI</anchor>
を提供できることから、より良い<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者体験</anchor>を提供できる可能性があります。
一方で用途によっては機能の少ない <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>でしかなく、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>に不便を強いたり、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セキュリティー</anchor>上の問題を生じたりすることもあります。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[46]</anchor-end> 例えば任意のページを表示できる <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>機能を組み込みながら、
そのページの <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLS証明書</anchor>の情報を表示できないような場合には、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フィッシング</anchor>などに悪用される危険性があります。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アドレスバー</anchor>参照。</comment-p></example><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="48" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[48]</anchor-end> 例えば<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">リンク</anchor>を新しい<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">窓</anchor>で開く機能が埋め込み <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>では提供されないかもしれず、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>は不便に思うかもしれません。</p></example><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="49" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[49]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OAuth</anchor> を埋め込み <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>で実装するのは好ましくないと考えられています。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可エンドポイント</anchor>参照。)</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="61" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[61]</anchor-end> 一般的な <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>であれば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサイト</anchor>に通知されたり、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>の操作に割り当てられていたりする操作が、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>の場合埋め込まれている<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>に奪われて利用できないことがあります。</p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>の開発者としては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>の他の機能との整合性や、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>の利便性を考えてそのように設計しているのでしょうが、
実際には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>に通常の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>と違う体験を押し付けて困惑させるだけだったりします。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[62]</anchor-end> 例えば、「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">戻る</anchor>」ボタンが <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">履歴</anchor>の移動操作ではなく、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>の独自の遷移操作に関連付けられていて、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>内の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">履歴</anchor>の「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">戻る</anchor>」操作ができないことがあります。</p></example><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="63" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[63]</anchor-end> 例えば、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スワイプ</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>独自の操作に関連付けられていて、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webアプリケーション</anchor>の操作のうち<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スワイプ</anchor>と判断されてしまうものができないことがあります。</p></example><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="74" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[74]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SmartNews</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ内ブラウザー</anchor>の上に重ねて<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">履歴</anchor>の移動
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">戻る</anchor>・<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">進む</anchor>) のボタンを提供しています。位置は左下 (端からは少し離れた場所)
に固定されており、変更はできないようです。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webページ</anchor>の下側に <code>position: fixed</code> で固定の内容を表示しているような
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサイト</anchor>では、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクロール</anchor>もできず、重なった部分に何があるか<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>が知ることができません。</p></example><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="77" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[77]</anchor-end> 一般の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサイト</anchor>を閲覧できる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>は、
表示中の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webページ</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラットフォーム</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">標準のWebブラウザー</anchor>で開くことを<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>が指示できる手段を提供しているのが普通です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="115" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[115]</anchor-end> 一般に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ内ブラウザー</anchor>は任意の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサイト</anchor>の快適な閲覧に十分な機能を提供していないので、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">標準のWebブラウザー</anchor>を使う選択肢を与えることは重要です。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="109" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[109]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>の実装手段としてのみ用いられ特定の
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webページ</anchor>しか表示しない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>であると認知できないくらいに<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者インターフェイス</anchor>に馴染ませてあるかもしれません。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラットフォーム</anchor>の機能や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サーバー</anchor>との連携方法次第では、
完全に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ネイティブアプリ</anchor>の機能を使って<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>を開発するよりも、
一部を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webアプリケーション</anchor>として実装する方が楽なこともあります。
そうした開発手法を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バズワードの HTML5<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">HTML5 (バズワード)</title></anchor>と言ったり、
ハイブリッドと言ったりすることもあります。</comment-p></section><section><h1>Web サイトの著者から見た埋め込みブラウザー</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサイト</anchor>の性質にも依存しますが、一般の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサイト</anchor> 
<weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(自身の提供する<anchor>ネイティブアプリケーション</anchor>が<anchor>埋め込みブラウザー</anchor>を使っているわけではないもの。)</weak>
であっても、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>からアクセスされることは十分にあり得ます。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> 例えば、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Facebook</anchor> 内でその<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサイト</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">共有</anchor>されると、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Facebook</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スマートフォンアプリ</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ内ブラウザー</anchor>でそのサイトを開くことがあります。</p></example><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> 例えば、  <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SmartNews</anchor> に掲載された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webページ</anchor>やそこから<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">リンク</anchor>されている
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webページ</anchor>は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SmartNews</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ内ブラウザー</anchor>で開かれます。</p></example><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> そうした<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>の利用は、 <code class="HTTP" xml:lang="en">User-Agent:</code>
などで判断できることもあれば、元の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>と区別できない可能性もあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Google Analytics</anchor> では、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Safari</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ内ブラウザー</anchor>からのアクセスは
<dfn>Safari (in-app)</dfn> と表示されます。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">ほぼ、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">iOS</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ</anchor>からのアクセスだと思われます。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="103" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[103]</anchor-end> 
先述の通り<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ内ブラウザー</anchor>は当該<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ</anchor>の独自仕様・<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">不具合</anchor>が含まれていることがあり、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アドレスバー</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">開発者ツール</anchor>がないため<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">デバッグ</anchor>が困難だったり、
そもそも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ内ブラウザー</anchor>固有の問題であると気づきにくかったりして、
困惑している<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web開発者</anchor>もいます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="119" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[119]</anchor-end> 
本来の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>と同等の機能を提供できない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ内ブラウザー</anchor>は欠陥製品だという認識を、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ</anchor>の開発者が持ってほしいものですがね...
同等の機能を提供できない、
同等かどうか自身を持てないレベルの開発者は、
任意の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサイト</anchor>を閲覧可能な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ内ブラウザー</anchor>を使わんでほしい。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="120" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[120]</anchor-end> 
そんな実情があるので <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web開発者</anchor>としてはいっそ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ内ブラウザー</anchor>は全部ブロックしたい勢いなんだが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ内ブラウザー</anchor>を確実に識別する方法はないし、
使いたい機能が揃っているか個別に検査するのも限界があるからなあ。</p></section><section><h1>アプリケーションへの信用</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="64" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[64]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>を利用するということは当該<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">開発者</anchor>が任意の 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webページ</anchor>の内容にアクセスできる可能性があるということです。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="65" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[65]</anchor-end> A社の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>に埋め込まれた <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>で A社と無関係のB社の
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサイト</anchor>を利用して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クレジットカード</anchor>決済すると、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>の知らないうちに<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クレジットカード</anchor>情報がA社に送信されてしまう危険性があります。</p></example><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="66" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[66]</anchor-end> もちろんこれは通常の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オペレーティングシステム</anchor>にも言えることですが、
そうした<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラットフォーム</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">開発者</anchor>に対しては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>ははじめから全面的に信用していると考えられます。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="67" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[67]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">iPhone</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Safari</anchor> を利用するということは、その<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">開発者</anchor>である <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Apple</anchor>
を信用してデータを預けることを意味しています。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Apple</anchor> を信用できないなら、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">iPhone</anchor> を使うべきではないでしょう。</p></example><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="68" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[68]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>は、単なる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ</anchor>に対してはそこまで思慮深く検討していないかもしれません。
ですが、自衛のため、むやみに<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ内ブラウザー</anchor>で無関係の 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサイト</anchor>を閲覧することがないよう注意するべきです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="69" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[69]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>の可能な操作を制限して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>を保護する機能を持つ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラットフォーム</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ内ブラウザー</anchor>の機能も適切に制限したり、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>の確認を得たりするべきです。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</anchor-end> <cite xml:lang="ja">つい開いてしまうアプリ内ブラウザには要注意。機密情報を入力するならSafariのほうがいい | ライフハッカー[日本版</cite>]
(<time>2017-01-20 14:25:18 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.lifehacker.jp/2014/10/141001inappbrowser.html">http://www.lifehacker.jp/2014/10/141001inappbrowser.html</anchor-external></li></ul></refs><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[123]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TikTok</anchor> などは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">中華人民共和国</anchor>政府に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ内ブラウザー</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">個人情報</anchor>を無断送信しているなどとしてセキュリティー研究者や各国政府の調査対象になっています。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>TikTok</anchor> </sw-see></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="122" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[122]</anchor-end> <cite xml:lang="ja">Felix KrauseさんはTwitterを使っています: 「When opening a website from within the TikTok iOS app, they inject code that can observe every keyboard input (which may include credit card details, passwords or other sensitive information) TikTok also has code to observe all taps, like clicking on any buttons or links. https://t.co/Dcv0N4ccKD」 / Twitter</cite>, 午前6:06 · 2022年8月19日 <tz xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">+09:00</tz>, <time>2022-08-20T14:08:23.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://twitter.com/KrauseFx/status/1560372509639311366">https://twitter.com/KrauseFx/status/1560372509639311366</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="140" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[140]</anchor-end> <cite xml:lang="ja">スマホアプリ内ブラウザでのコンテンツ表示に関する注意喚起 | JSSEC</cite>, <time>2023-08-02T05:48:38.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.jssec.org/column/20220824-2.html">https://www.jssec.org/column/20220824-2.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="144" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[144]</anchor-end> 
<cite xml:lang="en">Modernizing OAuth interactions in Native Apps for Better Usability and Security — Google for Developers Blog - News about Web, Mobile, AI and Cloud</cite>, <time>2023-10-01T07:37:16.000Z</time>, <time>2023-10-02T09:23:19.416Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://developers.googleblog.com/2016/08/modernizing-oauth-interactions-in-native-apps.html">https://developers.googleblog.com/2016/08/modernizing-oauth-interactions-in-native-apps.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="145" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[145]</anchor-end> <cite xml:lang="ja">「Google でログイン」の問題を解決する - Google アカウント ヘルプ</cite>, <time>2023-10-02T09:24:41.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://support.google.com/accounts/answer/12917337?hl=ja#zippy=%2Cdisallowed-useragent">https://support.google.com/accounts/answer/12917337?hl=ja#zippy=%2Cdisallowed-useragent</anchor-external></p><blockquote><p>「403 disallowed_useragent」というエラーが表示された場合は、アプリで埋め込みの WebView が使用されています。一部のデベロッパーは、WebView を使用してアプリ内のウェブ コンテンツを表示しています。その場合、サードパーティがユーザー / Google 間の通信にアクセスして変更できる可能性があるため、セキュリティが万全とはいえません。</p><p>アカウントのセキュリティを強化するため、埋め込み WebView のサポートは 2021 年 9 月 30 日をもって終了しました。</p></blockquote></section><section><h1>埋め込みブラウザーによる Web ブラウザー</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="91" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[91]</anchor-end> 歴史的に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">レンダリングエンジン</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者インターフェイス</anchor>と不可分でしたが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>の仕組みを実装することにより、他の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">レンダリングエンジン</anchor>を使った
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>が実現可能となりました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="92" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[92]</anchor-end> 既存の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">レンダリングエンジン</anchor>を流用できるため、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>への参入障壁が大幅に低下しました。
それらは、本家 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>と、あるいは他の同種の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>と、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者インターフェイス</anchor>や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web互換性</anchor>に影響しない付加価値で競争することになります。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="93" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[93]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>は本家の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>も<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インストール</anchor>する必要がありますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラットフォーム</anchor>の標準コンポーネントとなったことで、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>はそれを意識する必要がありません。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="95" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[95]</anchor-end> 主要な <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タブ</anchor>機能を実装していなかった時代には、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タブブラウザー</anchor>が人気を博しました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="96" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[96]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Trident</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Gecko</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WebKit</anchor> など複数の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">レンダリングエンジン</anchor>を組み込み、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>が必要に応じて切り替えられる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>もありました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="94" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[94]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">iOS</anchor> では任意の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラム</anchor>を実行可能な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ</anchor>を公式の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">App Store</anchor> 
で配布することを <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Apple</anchor> が規制しているため、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラットフォーム</anchor>の標準の
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WebKit</anchor> を使う以外に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>を配布する手段がありません。
従って、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">iOS</anchor> 向けに <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">App Store</anchor> で配布されている <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ</anchor>は、
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Opera Mini</anchor> のような例外を除き) すべて同じ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">レンダリングエンジン</anchor>で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">レンダリングエンジン</anchor>のみ異なるものです。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="76" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[76]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Google Chrome Frame</anchor> は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IE</anchor> に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>として組み込むものでした。</p></section><section><h1>アプリ内ブラウザーを使わせない</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="126" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[126]</anchor-end> 
今や多くの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スマホアプリ</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ内ブラウザー</anchor>機能を持っていますが、
標準的な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>より機能が劣り、
正常に動作しない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサイト</anchor>が多いのが困りものです。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサイト</anchor>開発者にとっても動作確認が面倒な上に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ</anchor>判定が難しく、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ</anchor>の更新でも挙動が変わり得るので、対策は困難です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="127" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[127]</anchor-end> 
いくつかの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ</anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ内ブラウザー</anchor>を使うか標準の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>を使うかを設定で変更できます。
いくつかの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ</anchor>は、いったん<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ内ブラウザー</anchor>で開いた<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webページ</anchor>を標準の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>で開き直すボタンなりメニューなりを用意しています。
知識の少ない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>には難しく、そうでなくても<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>に無駄な手間をかけさせる酷い仕様ですが
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UX</anchor> がどうのこうのといつも偉そうな講釈を垂れる「専門家」達もなぜかこういう機能には何も言いませんね、不思議です)、
こうした回避機能を提供しているだけまだマシな部類です。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="139" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[139]</anchor-end> <cite xml:lang="ja">「超うざいよね?」LINEのアプリ内ブラウザを無効/オフにする手順/注意点!</cite>, <time>2023-08-01T15:17:13.000Z</time>, <time>2023-08-02T05:46:49.647Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://webmobile.net/line-in-app-browser-0117/">https://webmobile.net/line-in-app-browser-0117/</anchor-external></li></ul></refs><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="129" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[129]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LINE</anchor>
は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL query</anchor>
で</p><blockquote><table><tbody><tr><th>クエリパラメータ付きのURL</th><th>説明</th></tr><tr><td>https://example.com/?<code>openExternalBrowser=1</code></td><td>対象のURLを外部ブラウザで開きます。</td></tr><tr><td>https://example.com/?<code>openInAppBrowser=0</code></td><td>対象のURLをChromeカスタムタブで開きます。(Android版LINEのみ対応)<sup>[1]</sup></td></tr></tbody></table></blockquote><p>のように指定して、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor> をどの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>で開くか個別に指示できます。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="128" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;128</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="130" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[130]</anchor-end> 
この <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL query</anchor> はどの <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP URL</anchor> にも付けられるようです。
本来<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サーバー</anchor>がその解釈を定めるべき (で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サーバー</anchor>以外にはその決定権がない)
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL query</anchor> を濫用するのは、設計者の技術的センスの欠如以外の何者でもありませんが、
先述の通りこうした回避機能があるだけまだマシです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[132]</anchor-end>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サーバー</anchor>が既に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL query</anchor> を使っている場合は、
その末尾に <code>&amp;</code> で区切って繋げてやっても動作するようです。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="131" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;131</anchor-internal></src>
末尾以外の途中でも同じように動作するのかは未検証です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="133" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[133]</anchor-end> 
当然ながら、たまたま同名の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">query</anchor> を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サーバー</anchor>が使っている場合は、
誤動作のおそれがあります。また、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">query</anchor> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>構文以外が使われる場合
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP</anchor> および <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor> の仕様上まったく正当で、
決定権は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サーバー</anchor>だけにあります)、
この指定を付け加えることができません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="134" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[134]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LINE</anchor> で正常に扱えるためには <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LINE</anchor> の決めた仕様に従えというのは、傲慢です。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP</anchor> も <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor> も <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LINE</anchor> のものではありません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="135" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[135]</anchor-end> 
しかしながら、繰り返しますが、このような機能を提供しているだけ <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LINE</anchor>
には良心の欠片が残っているのであり、他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ</anchor>にはこのような回避機能がありません。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="136" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[136]</anchor-end> まあ良心というより苦情が多かったからかもしれませんが、
他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ</anchor>にも苦情は同じくらい届いているのではないでしょうか。</comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="137" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[137]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LINE</anchor> や他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ</anchor>の提供者にどれだけ苦情が来ているのかしりませんが、
世の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webアプリケーション</anchor>開発者のところにはこうした<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ内ブラウザー</anchor>絡みの苦情がしょっちゅう届いているんですよ。
しかもそのほとんどの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ内ブラウザー</anchor>が原因だと気づかないので (そりゃそうだ)、
「なんかわからないけど動かない」みたいな意味不明な不具合報告を苦労して分析してるんです。</comment-p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="128" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[128]</anchor-end> <cite xml:lang="ja">LINE URLスキームでLINEの機能を使う | <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LINE</anchor> Developers</cite>, <time>2023-08-02T03:04:53.000Z</time>, <time>2023-08-02T03:45:42.080Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://developers.line.biz/ja/docs/messaging-api/using-line-url-scheme/#opening-url-in-external-browser">https://developers.line.biz/ja/docs/messaging-api/using-line-url-scheme/#opening-url-in-external-browser</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="131" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[131]</anchor-end> <cite xml:lang="ja">LINEに投稿したリンクを、強制的に外部ブラウザで開かせたい | しらこのナレッジ</cite>, <time>2022-07-20T15:05:49.000Z</time>, <time>2023-08-02T03:48:55.964Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tecchan.jp/entry/211218-lineurl/">https://tecchan.jp/entry/211218-lineurl/</anchor-external></li></ul><figure xmlns="http://www.w3.org/1999/xhtml" class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="141" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[141]</anchor-end> 
<cite xml:lang="ja">LINEのアプリ内ブラウザでWebページを表示させる際に正常に動作しない場合はどうしたら良いですか? | LINE for Business</cite>, 
2022/08/12,
<time>2022-08-02T05:50:05.000Z</time>, <time>2023-08-02T05:50:20.085Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://faq.linebiz.com/help/s/article/000002119?language=ja">https://faq.linebiz.com/help/s/article/000002119?language=ja</anchor-external></figcaption><blockquote><p>アプリ内ブラウザで問題が起きる場合は、パラメータを付与して外部ブラウザへの遷移を推奨しています。(詳細は<asis xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">こちら<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">リンク</title></asis> )</p><p>※アプリ内ブラウザはOSのwebviewの仕組みを利用しています。</p></blockquote></figure></refs></section><section><h1>利用動向</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="101" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[101]</anchor-end> 
従来<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>は特定の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>の専用の動作を実現するため、
あるいは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プレビュー</anchor>のような補助的な使い方をするために使われており、
専用の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>を使わずに<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>を使うのは一般的とはいえませんでした。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="102" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[102]</anchor-end> 
しかし<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2010年代</anchor>後半の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SNS</anchor> などの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スマートフォンアプリ</anchor>の普及により、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web</anchor> 外で交換された <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor> を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ内ブラウザー</anchor>で開く使い方がかなり増えてきました。
例えば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LINE</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Facebook</anchor> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">共有</anchor>された <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webページ</anchor>を
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LINE</anchor> アプリや <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Facebook</anchor> アプリ内で開くというもので、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサイト</anchor>の利用者層によってはアクセスの大部分が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ内ブラウザー</anchor>というケースすらあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[121]</anchor-end> 
最近はどうなのか知りませんが、
以前は 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">iOS</anchor>
は複数の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ</anchor>の切り替えが <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UI</anchor> 的に分かりにくかったので、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサイト</anchor>を表示したい時に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UX</anchor> がどうこうとかイキった開発者が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ内ブラウザー</anchor>を使いたいがちだったそうです。
一方 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Android</anchor>
は当時も<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ</anchor>の切り替えが普通に行えたので、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Androidアプリ</anchor>にはそのような慣習はなかった
(ただし <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">iOS</anchor> と仕様を揃えるため<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ内ブラウザー</anchor>を使う<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ</anchor>も少なくなかった)
らしいです。</p></section><section><h1>製品</h1><figure class="short list"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>製品</figcaption><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MSHTML</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTMLayout</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UIWebView</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WKWebView</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SFSafariViewController</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Android WebView</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome Custom Tabs</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NetFront Browser NX</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PhantomJS</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XAML</anchor> <code class="XMLe" xml:lang="en">WebView</code></li><li><code>Titanium.UI.WebView</code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome Apps</anchor> <code class="HTMLe" xml:lang="en">webview</code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XUL</anchor> <code class="XMLe" xml:lang="en">browser</code></li><li><code class="XMLe" xml:lang="en">x-ms-webview</code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">React Native</anchor> <code>WebView</code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Electron</anchor> <code class="XMLe" xml:lang="en">webview</code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NW.js</anchor> <code class="HTMLe" xml:lang="en">webview</code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Headless Chromium</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chromium Embedded Framework</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Trusted Web activity</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSHTML</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WebView2</anchor></li></ul></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[124]</anchor-end> 
広く一般に公開されているものもあれば、
特定製品専用のものもあります。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="138" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[138]</anchor-end> 
よくトラブルが報告される<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ内ブラウザー</anchor>事例:</p><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Facebook</anchor> スマホアプリ</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LINE</anchor> スマホアプリ</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Gmail</anchor> スマホアプリ</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SmartNews</anchor> </li></ul></section><section><h1>関連</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> 本項の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>は、単に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webページ</anchor>内に <code class="HTMLe" xml:lang="en">iframe</code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>を置いただけのもの (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">入れ子閲覧文脈</anchor>) とは異なります。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="110" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[110]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">入れ子閲覧文脈</anchor>は (条件が整えば) <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM API</anchor>
を通じて「外側」にアクセスできますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>では基本的にそんなことはありません。</p></example><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="111" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[111]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">入れ子閲覧文脈</anchor>は <code>X-Frame-Options:</code> の制約を受けますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>では制約を受けません。
その他<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">第三者</anchor>としての制約の影響を受けません。</p></example><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[44]</anchor-end> より発展したものとして、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">レンダリングエンジン</anchor>等を流用したアプリケーション実行環境が
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OS</anchor> の標準機能として、あるいは開発環境等と共に提供される実行環境として用意されていることがあります。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTA</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">AIR</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XULRunner</anchor> のような例があります。</p></example><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> その場合、当該実行環境上のアプリケーションとしての<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">レンダリング</anchor>の一部として、
埋込み型の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>が用意されることもあります。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[47]</anchor-end> 例えば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome Apps</anchor> には、 <code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">webview</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>があります。
<code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">iframe</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>とは違って、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">最上位閲覧文脈</anchor>を作成するものになりますから、
埋め込み <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>と理解するべきものです。</p></example><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XUL</anchor> には <code class="XMLe" xml:lang="en">browser</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>があります。</p></example><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WinJS APIs</anchor> には <code class="HTMLe" xml:lang="en">x-ms-webview</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>があります。</p></example><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome Custom Tabs</anchor> も参照。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ネイティブアプリケーション</anchor>の通常の方法ではなく
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webビュー</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>) を使う開発手法を
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML5<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">HTML5 (バズワード)</title></anchor>、あるいは (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML5<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">HTML5 (バズワード)</title></anchor>
と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ネイティブアプリケーション</anchor>の) <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ハイブリッド</anchor>と呼ぶ人もいるようです。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">ただし「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ハイブリッド</anchor>」という言葉の意味は曖昧で、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Titanium</anchor>
のような開発方式を指すことなどもあります。</comment-p></section><section><h1>歴史</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</anchor-end> 古くは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IE</anchor> が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor> 標準の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>コンポーネントとして提供されており、
これを組み込んだ <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor> アプリケーションがいくつもありました。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ネイティブアプリケーション</anchor>の開発者には、
この機能を提供した点において <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IE</anchor> は好評でした。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Netscape</anchor>
その他 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Microsoft</anchor> 以外の (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OS</anchor> 標準でない) 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>を同様の形で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>に組み込むのは困難でした。</comment-p></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> <cite>アプリ内ブラウザと広告配信についての調査結果 - Qiita</cite>
(<time>2017-01-20 11:25:34 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://qiita.com/ta__ho/items/2fc8e02b1bb8f99883d7">https://qiita.com/ta__ho/items/2fc8e02b1bb8f99883d7</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> <cite>Android のアプリ内ブラウザについてのまとめ - Qiita</cite>
(<time>2017-01-20 14:19:48 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://qiita.com/otofu-square/items/3153dc75438acb3f71d0">https://qiita.com/otofu-square/items/3153dc75438acb3f71d0</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> <cite xml:lang="ja">Android 版 LINE にアプリ内ブラウザが実装されてしまったが無効にする設定が見つからない | Lonely Mobiler</cite>
(<time>2017-01-20 14:21:49 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://loumo.jp/wp/archive/20160702120051/">http://loumo.jp/wp/archive/20160702120051/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> <cite xml:lang="ja-JP">Yahoo! JAPANアプリヘルプ(Android向け) - アプリ内ブラウザーについて</cite>
(<time>2017-01-20 14:22:19 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://m.yahoo-help.jp/app/answers/detail/p/690/a_id/46754">https://m.yahoo-help.jp/app/answers/detail/p/690/a_id/46754</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> <cite xml:lang="ja">アプリで外部サイトを開くとき、なぜiOSとAndroidとでは動きが違うのか (1/3):MarkeZine(マーケジン)</cite>
(<time>2017-01-20 14:24:07 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://markezine.jp/article/detail/20256">https://markezine.jp/article/detail/20256</anchor-external></figcaption><blockquote><p>つまり、iOSではAndroidのようなハードウェア上の「戻る」ボタンがないので、「ホーム」あるいは「プロセス一覧」を経由しないと、元のアプリに戻ることができないのです。</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> <cite xml:lang="ja">アプリ内ブラウザでSafariを開くことが出来る連携機能Browsecurely|キセノンテンター</cite>
(<time>2017-01-20 14:24:57 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://xenontenter.com/browsecurely/">http://xenontenter.com/browsecurely/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</anchor-end> <cite xml:lang="ja">アプリ内ブラウザがさらに使いやすく iOSアプリバージョン3.4をリリースしました - はてなブックマーク開発ブログ</cite>
(<time>2017-01-20 14:26:04 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://bookmark.hatenastaff.com/entry/2015/12/22/112353">http://bookmark.hatenastaff.com/entry/2015/12/22/112353</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[38]</anchor-end> <cite xml:lang="ja">【お知らせ】LINEなどの「アプリ内ブラウザ」をご利用のお客様へ -おトク de キレイ(オトクデキレイ)-</cite>
(<time>2017-01-20 14:26:35 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://point.cosme.net/information/detail/1075">http://point.cosme.net/information/detail/1075</anchor-external></figcaption><blockquote><p>おトク de キレイでは「アプリ内ブラウザ※」をご利用の場合、全てのコンテンツにおいてコイン付与の対象外となります。</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="39" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[39]</anchor-end> <cite xml:lang="ja">カタチップ | アプリ内ブラウザの注意点</cite>
(<time>2017-01-20 14:28:44 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://kata-tip.com/application-browser-important">http://kata-tip.com/application-browser-important</anchor-external></figcaption><blockquote><p>※2015年4月現在</p><p>アプリ内ブラウザの注意点</p><p>アプリ内ブラウザ(Twitter)などはキャッシュが強く残ると更新しても修正が反映されない場合がある。</p><p>キャッシュをすぐに消すにはアプリを削除し再インストールしなければならないので要注意です。</p><p>参考にさせていただいた記事</p><p>http://mosap.net/twitter-for-ios-issues</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="50" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[50]</anchor-end> <cite xml:lang="ja">アプリ内ブラウザの「戻る」機能 — Website Usability Info</cite>
(<time>2017-01-20 14:29:31 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://website-usability.info/2013/07/entry_130718.html">http://website-usability.info/2013/07/entry_130718.html</anchor-external></figcaption><blockquote><p>アプリ内のブラウザ機能でいくつかの Web ページを遷移しているとき、画面左上にあるアイコン (「戻る」ボタンっぽいもの) をタップしたら、直前に見ていた Web ページではなく、Web ページを開く前のコンテンツに一気に引き戻された...という経験は、ありませんか?</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="51" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[51]</anchor-end> <cite xml:lang="ja">子どもの「フィルタリング」はLINEでは無効だ | イマドキのLINE事情 | 東洋経済オンライン | 経済ニュースの新基準</cite>
(<time>2017-01-20 14:30:21 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://toyokeizai.net/articles/-/128148?page=4">http://toyokeizai.net/articles/-/128148?page=4</anchor-external></figcaption><blockquote><p>しかし、ブラウザ型フィルタリングを利用していても、LINEでシェアされたURLはLINEのアプリ内ブラウザで表示されるため、フィルタリングされません。LINEだけでなく、TwitterやFacebookといったSNSアプリやニュースアプリなど、アプリ内ブラウザ機能を持つアプリは同様です。</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[52]</anchor-end> <cite xml:lang="ja">FacebookやTwitterのアプリ内ブラウザで画面高さが適切にとれない - naosk8's blog</cite>
(<time>2017-01-20 14:31:47 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://naosk8.hatenablog.com/entry/2016/04/18/091548">http://naosk8.hatenablog.com/entry/2016/04/18/091548</anchor-external></figcaption><blockquote><p>今回は、TwitterやFacebookのアプリ内ブラウザ(embedded browser) に</p><p>フッターの固定メニューが正しく表示されない事態が発生したので、</p><p>その解消の経緯をメモ。</p><p>inappbrowserキライ。</p><p> </p><p>結論</p><p>inappbrowserでは、</p><p>innerWidthなどは、URLやステータスバーなどの表示領域を含まれる、</p><p>ブラウザ全体の高さを取得してしまうのでNG。</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[53]</anchor-end> <cite xml:lang="ja">ブラウザかWebViewか、どちらで開かれたのかを判別するには - console.lealog();</cite>
(<time>2017-01-20 14:39:07 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lealog.hateblo.jp/entry/2014/10/09/130344">http://lealog.hateblo.jp/entry/2014/10/09/130344</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[54]</anchor-end> <cite xml:lang="ja">T28_tatsuyaさんのツイート: &quot;本当だ!ツイッターのアプリ内ブラウザだと、つぶやくページに行けない_(:3 」∠ )_ 他のブラウザで開いてやって下さい、、、_(:3 」∠ )_ RT:@xxsanzashixx: あたったあと、つぶやく!押すと、白い画面になると思う…&quot;</cite>
(<time>2017-01-20 14:39:17 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://twitter.com/t28_tatsuya/status/618716728474755072">https://twitter.com/t28_tatsuya/status/618716728474755072</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="55" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[55]</anchor-end> <cite xml:lang="ja">iOSのアプリ内Webブラウザーでコピペメニューが表示されない場合の対処方法</cite>
(<time>2017-01-20 14:40:17 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://hitoriblog.com/?p=38274">http://hitoriblog.com/?p=38274</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[56]</anchor-end> <cite>アプリ内ブラウザについて</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">© 2013 qixil.</anchor>著, <time>2017-01-20 14:41:15 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://qixil.jp/q/3666">https://qixil.jp/q/3666</anchor-external></figcaption><blockquote><p>フォーム内に画像添付を使用しており標準ブラウザからアクセスすると問題なく動作するのですが</p><p>LINEやQRコードアプリなどのアプリ内ブラウザからアクセスすると画像添付に不具合が生じてしまいます。</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="57" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[57]</anchor-end> <cite xml:lang="ja">Android版LINEから開いたページで画像を保存できない場合の対策 | LINEの仕組み</cite>
(<time>2017-01-20 14:41:45 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://did2memo.net/2016/07/03/naver-line-save-image-in-app-browser/">http://did2memo.net/2016/07/03/naver-line-save-image-in-app-browser/</anchor-external></figcaption><blockquote><p>「Android版LINE 6.4.1 にアップデートしたらLINEブログの画像が保存できなくなった」という話を聞いて確認してみたところ、その原因は、Android版LINEがリンク先をアプリ内ブラウザ( アプリの中にウェブブラウザの機能が埋め込まれたもの)で開くようになり、そのアプリ内ブラウザでは、画像を長押ししてもメニュその場合の対策を紹介します。</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="58" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[58]</anchor-end> <cite xml:lang="ja">iOSのアプリ内ブラウザから、個人情報を盗まれる可能性が…|ギズモード・ジャパン</cite>
(<time>2017-01-20 14:42:32 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.gizmodo.jp/2014/09/ios_21.html">http://www.gizmodo.jp/2014/09/ios_21.html</anchor-external></figcaption><blockquote><p>Twitterificの開発者の1人であるCraig Hockenberry氏によると、アプリ内ブラウザはキーボード入力を監視できるようなのです。</p><p>iOSのアプリ内ブラウザでキーボード入力すると、たとえセキュアなパスワードの入力欄であっても、アプリ側は入力した文字を抽出できてしまうそうです。というのも、アップルのアプリ開発ガイドラインに従うため、アプリ内ブラウザはSafariのOAuth認証を使わないからなのです。</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[59]</anchor-end> <cite xml:lang="ja">Web ビュー</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Jwmsft</anchor>著, <time>2017-01-20 14:43:28 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://msdn.microsoft.com/ja-jp/windows/uwp/controls-and-patterns/web-view">https://msdn.microsoft.com/ja-jp/windows/uwp/controls-and-patterns/web-view</anchor-external></figcaption><blockquote><p>Web ビュー コントロールは、Microsoft Edge レンダリング エンジンを使って、Web コンテンツをレンダリングするアプリにビューを埋め込みます。 また、Web ビュー コントロールでは、ハイパーリンクの表示と動作が可能です。</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="60" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[60]</anchor-end> <cite xml:lang="en">Google Developers Blog: Modernizing OAuth interactions in Native Apps for Better Usability and Security</cite>
(<time>2017-01-19 06:26:40 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://developers.googleblog.com/2016/08/modernizing-oauth-interactions-in-native-apps.html">https://developers.googleblog.com/2016/08/modernizing-oauth-interactions-in-native-apps.html</anchor-external></figcaption><blockquote><p>The rollout schedule for the deprecation of web-views for OAuth requests to Google is as follows. Starting October 20, 2016, we will prevent new OAuth clients from using web-views on platforms with a viable alternative, and will phase in user-facing notices for existing OAuth clients. On April 20, 2017, we will start blocking OAuth requests using web-views for all OAuth clients on platforms where viable alternatives exist.</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="79" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[79]</anchor-end> <cite xml:lang="ja">WebView Class (Windows)</cite>
(<time>2017-03-16 12:47:02 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://msdn.microsoft.com/ja-jp/library/windows/apps/windows.ui.xaml.controls.webview">https://msdn.microsoft.com/ja-jp/library/windows/apps/windows.ui.xaml.controls.webview</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="90" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[90]</anchor-end> <cite>Lotus Notes 8 ヘルプ - MIME メールに対して埋め込みブラウザを無効にするには</cite>
(<time>2017-03-17 18:11:07 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.bcom.co.jp/help/help8_client.nsf/2e73cbb2141acefa85256b8700688cea/b95ac577e9412cbc4925732400351164!OpenDocument">https://www.bcom.co.jp/help/help8_client.nsf/2e73cbb2141acefa85256b8700688cea/b95ac577e9412cbc4925732400351164!OpenDocument</anchor-external></figcaption><blockquote><p>デフォルトでは、IBM Lotus Notes はシステムブラウザを使用して MIME メールを表示します。この場合、Lotus Notes のデフォルトブラウザと比べてメールの表示状態はよくなりますが、Lotus Notes のデフォルトブラウザのような正確な印刷やメールヘッダーの表示を行うことはできません。また、システムブラウザを使用することにより、セキュリティの問題が発生する可能性もあります。</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="100" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[100]</anchor-end> <cite xml:lang="ja">【はてなからの回答】はてなブログの iPhoneアプリで勝手にログアウトされる問題について - いつもマイナーチェンジ!</cite>
( (<time>2017-05-29 02:01:19 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.mayoinu.com/entry/2015/10/23/200000">http://www.mayoinu.com/entry/2015/10/23/200000</anchor-external></figcaption><blockquote><p>SafariのCookieをブロックしている場合、はてなブログアプリでもログインが続かない状態になってしまうことを確認いたしております。</p><p>Cookieの設定を「常に許可」、もしくは「訪問したWebサイトを許可」にした後、はてなブログアプリでログインし直して表示をご確認ください。</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="104" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[104]</anchor-end> <cite xml:lang="ja">Internet Explorerのアドレスバーに入力した内容をWebページが読み取れるバグ | スラド セキュリティ</cite>
(<time>2017-10-01 20:16:26 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://security.srad.jp/story/17/09/30/1832253/">https://security.srad.jp/story/17/09/30/1832253/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="108" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[108]</anchor-end> <cite xml:lang="ja">WKWebView で target = _blank と POST の組み合わせ注意 - star__hoshi's diary</cite>
(<time>2018-03-04 15:33:38 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://starhoshi.hatenablog.com/entry/2017/01/06/WKWebView_%E3%81%A7_target_%3D__blank_%E3%81%A8_POST_%E3%81%AE%E7%B5%84%E3%81%BF%E5%90%88%E3%82%8F%E3%81%9B%E6%B3%A8%E6%84%8F">http://starhoshi.hatenablog.com/entry/2017/01/06/WKWebView_%E3%81%A7_target_%3D__blank_%E3%81%A8_POST_%E3%81%AE%E7%B5%84%E3%81%BF%E5%90%88%E3%82%8F%E3%81%9B%E6%B3%A8%E6%84%8F</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="118" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[118]</anchor-end> <cite xml:lang="ja">【???】スマホゲーム「アイドルマスターミリオンライブ!シアターデイズ」では阿部寛のHPが見れるらしい - Togetter</cite>
(<time>2020-10-12T00:31:44.000Z</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://togetter.com/li/1606720">https://togetter.com/li/1606720</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="142" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[142]</anchor-end> <cite xml:lang="ja">抜け道もあるが、無意味ではない スマホの青少年向けフィルタリング、「される側」はどうしてる? | i:Engineer(アイエンジニア)|パーソルクロステクノロジー</cite>, <time>2023-08-02T05:52:17.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://staff.persol-xtech.co.jp/i-engineer/product/SPfilter">https://staff.persol-xtech.co.jp/i-engineer/product/SPfilter</anchor-external></p><blockquote><p>鈴木さん:ただ、これはスマートフォンの標準ブラウザに関しての話なので、<b>アプリ内のブラウザは対象外になります</b>。ですので、例えば「LINEで回ってきたURLを、アプリ内のブラウザで開けてしまう」という弱点があるんですよ。……というかそもそも、LINEも利用推奨年齢が12歳以上のアプリではあるんですけどね。</p></blockquote><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[143]</anchor-end> <cite xml:lang="ja">長岡りみやさんはTwitterを使っています: 「ANAアプリからJAL航空券を予約する方法 ①ANAアプリで「運航の見通し」を開く ②ANAウェブサイトのトップページに移動し、サイト内検索で「植物防疫所」を検索 ③「植物検疫からの重要なお知らせ|ANA」を開き、「農林水産省 植物防疫所のウェブサイト」と書かれたリンクを開く」 / X</cite>, <time>午前2:23 · 2023年8月4日<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2023-08-03T17:23:32.000Z</attrvalue></time>, <time>2023-08-05T03:29:43.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://twitter.com/nagaok_arimiya/status/1687152231580368896">https://twitter.com/nagaok_arimiya/status/1687152231580368896</anchor-external></p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="82" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[82]</anchor-end> <cite xml:lang="ja">2021年版 主要なアプリ内ブラウザのUserAgentを調べてみた &amp; 判定を実装してみた</cite>, <time>2025-02-21T05:18:10.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://zenn.dev/kecy/articles/f51851e42c4243">https://zenn.dev/kecy/articles/f51851e42c4243</anchor-external></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="84" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[84]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="82" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;82</anchor-internal> は不完全 (標準的なWebブラウザーと挙動が違うのに判定手段を用意しない糞アプリが悪いのだが)</p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="81" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[81]</anchor-end> <cite xml:lang="en">GitHub - andy-isd/ios-inapp-detection-js: This script detects if your webpage was opens in Safari or In-App utilizing window.innerHeight property.</cite>, <time>2025-02-21T05:17:37.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/andy-isd/ios-inapp-detection-js">https://github.com/andy-isd/ios-inapp-detection-js</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="83" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[83]</anchor-end> <cite xml:lang="uk-UK">Safari In-App detection</cite>, <time>2025-02-21T05:38:06.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://andy.isd-group.com/inapp.php">https://andy.isd-group.com/inapp.php</anchor-external></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="85" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[85]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="83" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;83</anchor-internal> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">iPhone</anchor> の画面サイズと比較するという力技、確かにこうでもするしかないのが辛いところ。
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="81" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;81</anchor-internal> で自由ソフトウェアで配布されている。</p></section></body></html>