unitをpixelにする。


gridを10pixel

layerをauto selected

always save

トリミング

切り抜く

なるほど!
随机应变 ABCD: Always Be Coding and … : хороший
unitをpixelにする。


gridを10pixel

layerをauto selected

always save

トリミング

切り抜く

なるほど!


1.ユーザーがpush通知許可
2.APNsがユーザーにデバイストークンを発行
3.ユーザーがサーバーにデバイストークン登録
4.サーバーがAPNsにプッシュ通知
5.APNsがユーザーにpush通知
サーバーはニフティクラウド mobile backendを使うらしい。
http://mb.cloud.nifty.com/
mBaaSというらしい。
とりあえず、登録してましょう。

ああ、これかー、application keyとclient key

まず、キーチェーンアクセスって何処にある?ジャッキーチェーン?
最初に、Utilitiesを開きます。

utilitiesから、Keychain Accessを開きます。
なんだ、簡単。

次に、Keychain Accessから、Certificate Assistant -> Request a Certificate From a Certificate Authority… を開きます。

Certificate Informationのformが開くので、User Email Addressにmacのdeveloperで登録しているメールアドレス、CA Email Addressは空欄、Request is:は、saved to disk と Let me specifiy key pair informationをチェックします。

そうすると、保存場所を聞かれるので、適当にDesktopにでも保存します。

key pair informationはそのまま、RSA 2048bitでcontinueします。

できました。OK

AppDelegate.swift で、UserNotifications, NCMBをimportする。
import UIKit import UserNotifications import NCMB
あれ、NCMBがインポートできない。
あれ、証明書が必要なの?
>証明書の取得
>参考1(GitHub):プッシュ通知の受信に必要な証明書の作り方(開発用)
>参考2(Qiita):プッシュ通知に必要な証明書の作り方2016
>ニフクラ mobile backend の無料登録(アカウント取得)
なに、事前準備がこんなにあるのか。。
そもそもCSRファイルとは?
>CSR には「公開鍵」とその所有者情報、及び申請者が対応する秘密鍵を持っていることを
>示すために申請者の署名が記載されています。 認証局は証明書にその所有者情報を
>署名することで、所有者の存在を証明しています。
>SSL 通信ではサーバが公開鍵を提示し、これを用いて暗号化通信を開始します。
公開鍵、所有者情報、秘密鍵を持っていることの証明か。
そもそも、CSRってなんの略? まさか企業の社会的責任じゃないよね? Corporate Social Responsibility?
Certificate Signing Request ですと。よかったー、安心♪
photoshopを開き、image -> adjustment -> brightnessで修正する。
通常

明るさ補正

明るく成りましたね。
というか、クオリティ上げて行くには、photoshopもやらないといかんのか。。
なんてことだ。
info.plistに追加します。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSExceptionDomains</key>
<dict>
<key>http://hpscript.com/</key>
<dict>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<false/>
</dict>
</dict>
</dict>
php
$response = array();
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$teamName = $_POST['name'];
$member = $_POST['old'];
$response['api'] = "succeeded";
$response['member'] = $member . " years old!";
echo json_encode($response);
}
xcode console
っキタキタキタ!!!!!!!!!!!!!!!!!!!!!!!!

今回、php側はjsonで返してますが、mysqlへのinsert, fetchResultもできますね。iOSの光が見えてきた。
import UIKit
class ViewController: UIViewController {
let URL_SAVE_BOY = "http://hpscript.com/swift/index.php"
@IBOutlet weak var NameFeild: UITextField!
@IBOutlet weak var oldFeild: UITextField!
@IBAction func saveBtn(_ sender: Any) {
let requestURL = NSURL(string: URL_SAVE_BOY)
let request = NSMutableURLRequest(url: requestURL! as URL)
request.httpMethod = "POST"
let teamName = NameFeild.text
let memberOld = oldFeild.text
let postParameters = "name="+teamName!+"&old="+memberOld!;
request.httpBody = postParameters.data(using: String.Encoding.utf8)
let task = URLSession.shared.dataTask(with: request as URLRequest){
data, response, error in
if error != nil {
print("error is \(error)")
return;
}
do {
let myJSON = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSDictionary
if let parseJSON = myJSON {
var msg : String!
msg = parseJSON["message"] as! String?
print(msg)
}
} catch {
print(error)
}
}
task.resume()
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
@media printで指定します。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>The HTML5 Herald</title>
<meta name="description" content="The HTML5 Herald">
<link rel="stylesheet" href="">
<style>
#content1 {
color:blue;
}
@media print{
#content1{
color:green;
font-size:24px;
}
}
</style>
</head>
<body>
<input type="button" value="印刷する" onclick="window.print();" />
<div id="content1">
<p>サッカーW杯ロシア大会には、総額約120億ドル(約1兆6000億円)の選手たちが集結する。3人のトップ選手、ネイマール、メッシ、C・ロナウドの価値は、ランキング下位のチームの市場価値を上回った。</p>
</div>
</body>
</html>
font-size, font-colorが変わりました。

<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>The HTML5 Herald</title> <meta name="description" content="The HTML5 Herald"> <link rel="stylesheet" href=""> </head> <body> <input type="button" value="印刷する" onclick="window.print();" /> <div id="content1"> <p>サッカーW杯ロシア大会には、総額約120億ドル(約1兆6000億円)の選手たちが集結する。3人のトップ選手、ネイマール、メッシ、C・ロナウドの価値は、ランキング下位のチームの市場価値を上回った。</p> </div> </body> </html>

印刷ボタンを押すと、、

なるほど