🦋

PrivacyPolicyの設定

2024/05/14に公開

iOSリリースのために

例のPrivacyPolicyが要る。
なにを書くか、のほうは大して問題ないのだが、
アプリの中に書けば簡単なのに、どこかにupしてURLが必要なんだったよね。
初めてリリースした『はじめてのえにっき』のためにつくったが、
三年も前だからいい加減忘れている。
たしかgithub.ioにしたんだった。

前回のPrivacyPolicyを流用する

ほんとはAWSにあるServerpodのWebServerに上げればいいんだけれど、
やり方がよくわからないので(>_<)
前回同様github.ioを使おう。
でも、github.ioって、無料だとたしか5件しか使えないので、
もったいないから、前回のを増築して使うことにする。
index.html一つだったものに、
diary.html『はじめてのえにっき』用と
ChronoMap.html『四次元年表for mobile』用を追加して、
トップに分岐のリンクを張る。
Pagesで作った原稿を爺様にhtmlに変換してもらったので、一瞬だった。
pushすると、自動でdeployされたので、それも一瞬だった。
お世話になります(゚゚)(。。)ペコッ。

index.htmlはこんな感じ

<body>

    <h1>Ecole la Porte Privacy Policy</h1>
    <ul>
        <li><a href="diary.html">はじめてのえにっき プライバシーポリシー</a></li>
        <li><a href="chronomap.html">四次元年表 for mobile プライバシーポリシー</a></li>
    </ul>


</body>

アプリ側はこんな感じ

『はじめてのえにっき』はindex.htmlを指定していたので、トップに飛ぶ。
『四次元年表』は、最初から.../chronomap.htmlで指定したので、直接飛ぶ。
専用Containerを別ファイルでつくって

import 'package:url_launcher/url_launcher.dart';

class LaunchUrlContainer extends StatelessWidget {
  final String textContent = 'Ecole la Porte Privacy Policy';

  const LaunchUrlContainer({
    super.key,
  });

  
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: onLaunchUrl,
      child: Padding(
        padding: const EdgeInsets.fromLTRB(30, 12, 30, 12),
        child: ShadowedContainer(
          child: Container(
            decoration: BoxDecoration(
              color: Colors.lightGreen[100],
              borderRadius: BorderRadius.circular(15),
            ),
            child: Padding(
              padding: const EdgeInsets.all(12.0),
              child: Row(
                mainAxisAlignment: MainAxisAlignment.center,
                children: [
                  Text(textContent),
                    const Icon(Icons.open_in_new),
                ],
              ),
            ),
          ),
        ),
      ),
    );
  }
  Future<void> onLaunchUrl() async {
    final Uri url = Uri.parse('https://laporte727.github.io/ecole.la.porte/chronomap.html');
    if (await canLaunchUrl(url)) {
      await launchUrl(url);
    } else {
      // エラーハンドリング: URLを開けない場合の処理
      print('Could not launch $url');
    }
  }

}

実際のページでは呼ぶだけ

    const LaunchUrlContainer(),

さっ、リリース作業に入ろう!

四次元年表

https://app.laporte.academy

三次元・四次元表示

https://tempo-spaco.web.app

四次元年表の使い方

https://www.youtube.com/@laporte_academy

Flutter大学

Discussion