和洋風KAI

ブログエディタ「するぷろ for iOS」のAppHtmlのURLスキームがiOS 8のSafariでうまく動かない件について。

当方が開発している、ブログエディタ「するぷろ for iOS」がiOS 8のSafari上でAppHtmlのURLスキームが動作しない問題が生じているようです。

こちらでも原因を探しているのですが、どうも根本的な原因がわかりません。

一応、現段階での対策をまとめてみたいと思います。

半角のセミコロン、半角の()がAppHtmlのテンプレートに含まれていると動作しない。

一応こちらで動作確認してみたところ、半角の「;」(セミコロン)、半角の「()」がAppHtmlのテンプレートに含まれていると動作しないようです。

AppHtmlのテンプレートに半角のセミコロンを使わない方法としては、直接テンプレートにCSSを指定せず、classと外部スタイルシートで指定する策が適切かと思います。(個人的には、コードがスッキリするし、検索エンジンもコードを認識しやすくなるので、styleよりも、classと外部スタイルシートでデザインを指定した方がよいと思います。)

当方で動作確認しているAppHtmlのテンプレートとスタイルシートを下に記しておきます。↓↓

<div class="appHtmlBox"><div class="appHtml-left"><div class="appHtml-image"><a href="${url}" target=“_blank” rel=“nofollow"><img width="75" height="75" class="appsImg" src="${icon100url}" /></a></div></div><div class="appHtml-right"><div class="appHtml-title"><a href="${url}" target="_blank" rel=“nofollow">${name}</a></div><div class="appHtml-price">価格: <b><span class="red">${price}</span></b>(記事公開時)</div><div class="appHtml-category">カテゴリ: ${category} </div></div></div>
.appHtmlBox {
overflow:hidden;
}
.appHtml-title {
font-size:16px;
font-weight:700;
margin-top:5px;
}
.appHtml-left {
max-width: 75px;
margin-top:5px;
float:left;
}
.appHtml-right {
width: 405px;
margin-left: 20px;
float: left;
margin-bottom: 10px;
}
.appHtml-category {
font-size:90%;
clear:both;
}
.appHtml-artist,
.appHtml-price {
margin-top:8px;
font-size:90%;
clear: both;
}
.appHtml-release{
font-size:90%;
}
.appsImg {
float:left;
-moz-border-radius:15px;
-webkit-border-radius:15px 15px 15px 15px;
border-radius:15px 15px 15px 15px;
box-shadow:1px 4px 6px 1px #999;
-moz-box-shadow:1px 4px 6px 1px #999;
-webkit-box-shadow:1px 4px 6px 1px #999;
margin-left:6px;
margin-bottom:10px;
}

貼り付けるとこんな感じになります。↓↓

価格: ¥500(記事公開時)
カテゴリ: ソーシャルネットワーキング, 仕事効率化

テンプレートを作り直すのが面倒な方は、原因がわかるまでコピー型、プレビュー型のAppHtmlを使うことをオススメいたします。(個人的には、抜群の安定度を誇るコピー型がオススメ。)

原因調査中。


他のアプリだと半角のセミコロン、半角の()入りのテンプレートでもURLスキームが動作することも確認しています。

するぷろの場合、仕様が複雑にならないように、URLスキームはなるべくシンプルにしています。(slpro://(文字列)で動作とパラメータの指定は無い仕様。)

しかし、動作しているアプリはパラメータを指定して文字列の受け渡しをしています。

それが原因なのかと、一応、パラメータ入りのURLスキームで動作確認してみましたがどうもそういうことでもないようです。 文字数も疑ってみましたが、試してみるとどうもそういう感じでもない・・・。(パラメータ入りでも、パラメータ無しでもURLスキームによる移動がそもそも発動しない。)

というわけで、現在原因を探っている段階です。

ちなみにChrome for iOSだとちゃんと動くようですね。↓↓

Google Chrome ではするぷろへ出力できることを確認しています。

引用元:Happy-Go-Lucky: [iOS8] AppHtml でするぷろへ出力できない現象とその回避策

個人的には iOS 8 のバグだと思っています。

しかし、こんなマニアックなところをAppleが修正してくれるのか非常に疑問・・・。

一応修正に期待してエントリーにしてみましたがどうなることやら・・・。

もしなにか原因が分かれば @isloop まで教えて頂けると幸いです。