【Swift5】Googleフォームにあらかじめ自動入力する


アプリの不具合の報告などで、OS情報やアプリのバージョンなどの情報があるととても助かりますよね。 そこで今回は、それらの項目を自動入力してくれるフォームの作り方を紹介します。

方法

Googleフォームには、自動入力済みのURLを発行する機能があります。 このURLの一部をSwiftで書き換えればいいのです。

1. フォームを作成

こちらからフォームを作成してください。 作成方法については説明を割愛させていただきます。

2. URLを生成

フォーム作成画面の右上にある、・が縦に3つ並んだメニューボタンから、「事前入力したURLを取得」をクリックします。 するとフォーム入力画面に飛ぶので、事前入力しておきたい項目に分かりやすい文字列を入力しておきます。

「リンクを取得」をクリックするとURLが生成されます。 画面左下の「リンクをコピー」を押してコピーしておきましょう。

自分の場合はこのようなリンクになりました。

https://docs.google.com/forms/d/e/1FAIpQLScUGRP-Pbs0bpBw2MtwjN6OpxeoHgUjloGV-OMNVOBvEkLJ6A/viewform?usp=pp_url&entry.1009686721=osversion&entry.1835889012=appversion

3. OS情報、アプリのバージョンを取得

OS名はUIDevice.current.systemName、OSバージョンはUIDevice.current.systemVersionで取得可能です。(どちらもStringです)

let os = "\(UIDevice.current.systemName)%20\(UIDevice.current.systemVersion)"
let version = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String

この文字列はURLの一部となるため、スペース(空白)は使ってはいけません。 代わりに%20を使用すると空白になります。

追記 機種の名前を取得する

正確な機種名(例えば「iPhone XS」など)を取得するため、YMTGetDeviceNameというライブラリを使用します。

var device = YMTGetDeviceName.share.getDeviceName()
if let devName = device.range(of: " ") {
  device.replaceSubrange(devName, with: "%20")
}

rangeを使って、空白を%20に置き換えています。

4. URLの書き換え

先ほどのURLのosversionの部分を\(os)に、appversionの部分を\(version)に書き換えるだけです。

let url = URL(string:"https://docs.google.com/forms/d/e/1FAIpQLScUGRP-Pbs0bpBw2MtwjN6OpxeoHgUjloGV-OMNVOBvEkLJ6A/viewform?usp=pp_url&entry.1009686721=\(os)&entry.1835889012=\(version!)")
UIApplication.shared.open(url! as URL)

動作確認

問題なく表示されています。 ユーザーの手間を省けるので、試す価値はあると思います!

Comments

Show Comments