Uno Platform 2.0(プレリリース版)のWebViewコントロール
今回のサンプルアプリは、SQLiteデータベースに格納してあるWebページのデータを画面上部のリストに一覧表示するとともに、データを選択したときにそのWebページを画面下部のWebViewコントロールで表示しています(次の画像)。
このWebViewコントロールは、iOS/Androidでは使用上の注意事項があります。また、WebASMではWebViewコントロールがまだ提供されていないので、自作することになりました。
iOSでのWebViewコントロール
iOSでは、既定でWebViewコントロールが表示できるURLはhttpsだけです。既定ではhttpを表示できないのです。httpも表示するには、info.plistに次のようにNSAppTransportSecurityプロパティを追加します(次のコードと画像)。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
……省略……
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
</dict>
</dict>
</plist>
iOS 10以降では、上のようにNSAllowsArbitraryLoadsInWebContentをtrue(Yes)にすればhttpも表示できるようになりますが、App Storeへの提出が制限されます。また、iOS 9ではNSAllowsArbitraryLoadsを使いますが、App Storeでの審査はより厳しくなると思われます。
AndroidでのWebViewコントロール
Androidも、iOSと同様に既定ではWebViewコントロールでhttpを表示できません。httpも表示するには、AndroidManifest.xmlのapplicationタグにusesCleartextTraffic属性を追加します(次のコード)。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="UF16" android:versionCode="1" android:versionName="1.0">
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="28" />
<application android:label="UF16"
android:usesCleartextTraffic="true"></application>
</manifest>
この記事は参考になりましたか?
- UWPアプリ開発の最前線連載記事一覧
-
- SQLiteデータベースがWebアプリでも使える! ~Uno Platformクロスプラッ...
- UWPアプリを書けばiOS/Android/Webでも動く!? ~Uno Platform...
- Windows電卓の中はどうなっているのだろう?(後編) ~オープンソースのコードを改造し...
- この記事の著者
-
biac(ばいあっく)
HONDA R&Dで自動車の設計をやっていた機械屋さんが、技術の進化スピードに魅かれてプログラマーに。以来30年ほど、より良いコードをどうやったら作れるか、模索の人生。わんくま同盟の勉強会(名古屋)で、よく喋ってたりする。2014/10~2019/6 Microsoft MVP (Windows Devel...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
