本日は、昨日の続きです。
1.Web側で、URLに特定のリクエストパラメタを乗せてサーバアクセスする。
2.アプリ側で、画面遷移のタイミングでURLをチェックする。
3.2で、特定のリクエストパラメタを見つけたら、その内容を元にアプリ側処理を実行する。
昨日は1と2が完了したので、3を行いました。
アプリ内の”UserDefaults”や”キーチェーン”にユーザIDを保存しているのですが、これらをWebから書き換えることに成功しました。
昨日作成した”getUrlParam”を使い、コードは以下のようになりました。
// IDの更新
if let id: String = getUrlParam(url: url.absoluteString, param: "特定のパラメタ名") {
// UserDefaultsに保存
UserDefaults.standard.set(id, forKey: Constants.User.idfv.rawValue)
// キーチェーンに保存
KeychainService.savePassword(service: _ksService, account: _ksAccount, data: id);
}
Constants.User.idfv.rawValue とか _ksService とか _ksAccount とかはそれぞれの環境で適切な値を指定して下さい。
今回で基本的な部分はかなり完成してきました。ただ、まだ細かい詰めの作業が残っています。
テキスト漫画サイトのガワネイティブアプリなんて、2,3日でサクッとリリース出来るかと思ったらとんでもなかったです・・・
残作業は以下です。
・絵文字を入力すると正常動作しない箇所があるので対策
・IDを総当たり攻撃で不正変更される対策
・各メニュー(1〜3)での登録/変更テスト
・ボタンやリンク押した時に音を出す
・秘密の作業