今日やった事
・ストーリーボードでボタンを3つ作成(種別)
・ボタンのクリックイベント作成
・ボタンクリック後、MySQLサーバーへデータ送信
・データ送信結果をダイアログで表示(OK or ERROR)
コード
//クリックイベント(3個)
@IBAction func Trash01(_ sender: Any) {
print("[DBG] : TRASH 01" )
HttpGET(data:"0")
}
@IBAction func Trash02(_ sender: Any) {
print("[DBG] : TRASH 02" )
HttpGET(data:"1")
}
@IBAction func Trash03(_ sender: Any) {
print("[DBG] : TRASH 03" )
HttpGET(data:"2")
}
...
// Http
func HttpGET(data:String){
let data:String = DateTime() + ","+data+"," + longitude + "," + latitude
// BASIC AUTH
let username = "(ID)"
let password = "(PASS)"
let session = URLSession.shared
guard let url = URL(string: "(URL)/hoge.php?huga="+data) else { return }
var request = URLRequest(url: url)
request.httpMethod = "GET"
guard let credentialData = "\(username):\(password)".data(using: String.Encoding.utf8) else { return }
let credential = credentialData.base64EncodedString(options: [])
let basicData = "Basic \(credential)"
request.setValue(basicData, forHTTPHeaderField: "Authorization")
session.dataTask(with: request) { data, urlresponse, error in
if let error = error {
self.ErrorDialog(data:"送信 ERROR")
return
} }.resume()
self.ErrorDialog(data:"送信 成功")
}
//確認ダイアログ
func ErrorDialog(data:String){
let alert: UIAlertController = UIAlertController(title: "確認", message: data, preferredStyle: UIAlertController.Style.alert)
let confirmAction: UIAlertAction = UIAlertAction(title: "OK", style: UIAlertAction.Style.default, handler:{
(action: UIAlertAction!) -> Void in
})
alert.addAction(confirmAction)
present(alert, animated: true, completion: nil)
}
完成
作成したボタンをタップする事で、WEB上のMySQLサーバへデータの記録が出来ることを確認。
失敗した場合は、ダイアログで確認できるようにしています。
最小限の機能のみですが、一応、完成。
Kotlinと比較すると、swiftの方は、初日の環境作成を含めて3日程で、比較的楽に作る事が出来ました。
後は、ボタンに画像を表示したり、設定画面を作るなど…。
これまでの流れで、[androidアプリ]、[iPhoneアプリ]、[MySQLサーバ]、[WEBサイト]と一通り全部作り終えたので、一旦、これで閉めるかもしれません。
参考サイト