2019年4月13日 星期六

日文動詞時態練習器

https://www.chapi.ml/jj.html 不知道這東西會不會有人需要?
如果有人用的話...麻煩留言感想 謝謝

2018年7月6日 星期五

登山料理 主餐 即食 中華粥

重量18公克
大約泡200ml的熱水
粥吃得出來一粒一粒的、雞肉正常、還有薑跟蔥
口味就雞粉底味帶上薑的香氣。
份量 是在爬了一 天山路 身心都渴望著熱湯的完美份量
味道不會很重 應該不會有太累喝不下去的問題
重量又只有18g,避免吃膩,一天可以來個1包
價格是70元上下,當然這種價格對上這種份量會覺得有點貴...
太輕了 只要吃不膩 多帶幾包都沒問題 份量真的很適合我
kcal是69卡(跟我買的價格1樣...1卡1元)
帶上山當主食的可能性 ★★★★★(能喝到熱湯真的棒)
美味                         ★★☆☆☆(在上山喝可能有加成,不然就很正常的雞湯+薑口味)
便利性                      ★★★★★(太輕巧啦!)





2018年6月1日 星期五

漫畫 神作是殘酷且無法排行的


寫寫畫畫
魂環
火之鳥
戰國妖狐
無限住人
黑社會超能力少女
日常
男子高中生的日常
三月的獅子
不過是蜘蛛子什麼的
東京食屍鬼
overload
王者天下
烙印勇士
異獸魔都
鬼滅之刃
拳願阿修羅
re:monster
獵人
幽遊白書
magi
一拳超人
魔法少女 of the end
進擊的巨人
人馬小姐不迷茫
炎拳
歷史之眼
寄生獸
迷宮飯
希德尼婭的騎士
晚安,布布
大劍
天上之弦
世界鬼
東方幻想鄉的日常
超能力者齊木
jojo冒險野郎2
rin
地球防衛少年

2018年5月20日 星期日

react native push notification

push notification
ios:
ref:https://www.appcoda.com.tw/firebase-push-notifications/
step 1: 在apple developer裡的服務勾選notificaion,當下或之後上傳 csr,再下載認證
下載下來的是cer檔,加入keychain。
現在打開Keychain Access後,在”My Certificates”內,我們將可以看見你剛加入的認證檔。他應該會叫做:Apple Development IOS Push Services:<your.bundle.id>
認證檔export。(並非只export展開後的paivate key(這樣上傳firebase會error))
step 2:https://console.firebase.google.com/ 建立專案
將ios 加入friebase,輸入bundle id,下載plist檔
點選setting icon->專案設定 ,進入colud messaging tab。
在apn憑證上傳剛剛export出來的cer檔。
(意思上來說 如果你可以上傳的cer 包含product跟developer的話,就可以在開發跟release上都能push)

step 3: 安裝fcm in react native,照著安裝pod 相關流程,將從firebase的plist加入xcode 根目錄。
在header search path add $(SRCROOT)/../node_modules/react-native-fcm/ios
把nodemoudule/react-native-fcm/ios 裡的ios專案加進去libraries 裡,當然.a也要加進build phases 裡 。 
done。
在app中是不會顯示通知的,但是可以捕捉到 ,使用 
FCM.on(FCMEvent.Notification, notif => {
      alert("get notify");

    });
以下是捕捉到的資料 (notif)

{
  • "google.c.a.c_l":"label",
  • "opened_from_tray":true,
  • "google.c.a.c_id":"5887610821863657426",
  • "gcm.n.e":"1",
  • "google.c.a.e":"1",
  • "_completionHandlerId":"26E0AF7E-0985-4740-BF6C-E2065E11FA1B",
  • "gcm.message_id":"0:1526742758325202%e4c66395e4c66395",
  • "mykey":"12345",
  • "google.c.a.udt":"0",
  • "_notificationType":"notification_response",
  • "_actionIdentifier":"com.apple.UNNotificationDefaultActionIdentifier",
  • "aps":{
    • "alert":"hihi it's test may i use in app"
    },
  • "google.c.a.ts":"1526742758"
}
其中的opened_from_tray這個key只有在點擊notify banner才會有,
  • "mykey":"12345" 是傳送時自訂的資料。
  • (題外話:我在firebase裡只匯入product的憑證 developer的匯不進,說什麼環境不符,但我用developer測試可以work... 不過後來發佈卻不行收到通知,重新download product的cer,再export給firebase 就可以了)
android:
IOS好了之後,照fcm安裝說明,並把androidmanifest.xml的package name拿去建立firebase就好了,不用什麼vpn憑證,但是也是要把firebase下載下來的json檔放到android/app底下。(我android在外面收到通知不會跳出來,但往下滑是可以看見)

2017年11月24日 星期五

cocos2dx lua iap 筆記

寫sandbox的時候要把iphone上的帳號清掉,才有辦法購買的時候 填入沙盒帳號,可是後來購買的時候 用原本的帳號就可以了!! 神奇 搞不懂。

購買完之後回來的transaction.transaction.receipt
要傳給server的時候
https://sandbox.itunes.apple.com/verifyReceipt
or
https://buy.itunes.apple.com/verifyReceipt

要先base64
crypto.encodeBase64(transaction.transaction.receipt)

但是如果用client提供的Store.setReceiptVerifyServerUrl
去做的話,不安全,所以要打自已寫的api
驗證完之後 就在db上做更新。
<?php
$json['receipt-data'] = base64後的receipt
$post = json_encode($json);
  //print($post);
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL,"https://buy.itunes.apple.com/verifyReceipt");
  //curl_setopt($ch, CURLOPT_URL,"https://sandbox.itunes.apple.com/verifyReceipt");
  curl_setopt($ch, CURLOPT_POST,1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  $result=curl_exec($ch);
  echo($result);
?>

2017年9月25日 星期一

cocos2dx出現Missing CFBundleIconName in Xcode9 iOS11 app release

手機不小心更新了ios11,連帶xcode也得更新成xcode9
接著就出現了一些問題
問題1:system不支援了
system(command.c_str());  
system不支援了
都要改成popen(command.c_str(), "r");
把發生錯誤的地方都改成以上的格式
popen(xxxx, "r");
就可以了

問題2:Missing CFBundleIconName in Xcode9 iOS11 app release
出版的時候,將app 上傳到itune會上傳不上去 ,雖然在xcode上不會發生錯誤
但會收到失敗的信件通知
是info.plist檔裡缺少CFBundleIconName這個KEY

1.點擊到專案 在IOS資料夾下有info.plist
在裡面增加一個CFBundleIconName的key,value是AppIcon
我在xcode的界面裡 加完key就return掉了 是有加進去 但清單內找不到 也就無法加value
所以我直接用筆記本改info.plist檔案

2.在專案的General中 找到
"App Icons and Launch Images"

在app icons source中點擊"use an asset catalog"
他會產生一個images.xcassets的資料夾在Resources底下
點擊它會出現icon跟執行畫面的資源視窗
我是把icon裡所有的icon 有空格的地方 從左側的專案資料夾中 把相對應的icon托進去填滿
如果一開始有設定好各尺寸的icon 這裡應該一開始就會全部填滿了
執行畫面的部份 我缺少前2個尺寸 因為我找不到應該放什麼尺寸
這2個是 iphone 2x portait 7.0 跟iphone retina 4 2x portait 7.0

3.之後改成新的版號 再次出版 就成功了。

參考連結:https://stackoverflow.com/questions/46216718/missing-cfbundleiconname-in-xcode9-ios11-app-release

2017年8月11日 星期五

cocos2dx 可儲存位置使用

cc.FileUtils:getInstance():addSearchPath("res/")
cc.FileUtils:getInstance():addSearchPath("src/")
cc.FileUtils:getInstance():addSearchPath(writablePath.."src/",true)

前2個是應用程式主要位置
第3個是可寫入的位置,patch或是下載儲存都只能存在這
而patch默認是在writablePath.."src/"底下

用cc.FileUtils:getInstance():getSearchPaths() 可以得到所有path
最前面的path最先讀取
所以patch的位置加上true,會把order排到前面

時常犯的錯是無法儲存 原因是沒有資料夾 儲存檔案時要先確定有沒有改目錄,沒有可以透過cc.FileUtils:getInstance():createDirectory(pathDir) 建立

android在刪除應用程式時 patch的資料並不會被刪掉。
但用debug測試時重安裝會刪掉

另外版本變更後 原有的patch不想使用,這時候除了先清空之外
使用 removeDirectory清空,話說直接建立一個資料夾也能把底下的檔案清空...

也可以考慮更換patch的位置(改assets manager)
比如 patch/src/version1
當版號更新為2時
變更為讀取 patch/src/version2