• 3

想用swift寫一個簡單的程式,但在最重要的點就GG了

提供一些資訊,你看一下。

第一步:你需要有一個APPLE的開發者帳號。
可以上https://developer.apple.com/ 去申請。
**這一步很重要,也會難倒很多初學者,網路上很多資源,你可去搜尋一下 "appel 開發者帳號" 有很多大大分享如何申請,對了,你如果要申請可以安裝到手機上面的,那就得要花99美元/年**

第二步:打開你手機推播功能

參考設定:http://blog.maxkit.com.tw/2014/03/iospush-notification-providerjava-apns.html

第三步:準備可以測試用的主機(server)端: 建議你用 php 的方式,比較簡單,當然你有比較熟悉的語言也可以的。

這個連結是一個不錯:https://code.google.com/p/apns-php/

以上



簡易流程應該是

1.首先有一個SERVER,一台手機(client)

2.手機先向APPLE那邊請求device token,取得device token,之後回傳回Server,

3.Server 接收到device token後存入資料庫,這邊先到一段落


Server上寫一個可以發送訊息的網頁,讀取資料庫中的所有Device token,逐一送出推播訊息,
先做及時送出的,排程的之後再來改版。

當然還有在使用前的APNS的相關憑證設定也很重要。如果還有什麼不太懂可以私訊給我
黑色鮪魚 wrote:
各位好,我是一個大...(恕刪)


樓主

給你提供幾個資訊
有關於APNS,如果你沒購買開發者年費,是沒辦法設定憑證也無法發送通知到裝置
所以要達成這件事情一定要繳$99給蘋果。
最後就看是要從Web上發送通知到裝置,還是從電腦端發送。

Web上基本上可以開2195跟2196的Port(如果是外面租來的虛擬主機),來達到接收Token跟發送做互動效果
上面有網友寫到建議可以使用PHP的部分就算是Web的意思了
但要注意的是Web麻煩的地方是還要把憑證合成為一個pem檔做連接,才能發送推播通知
網路上的範例:http://www.easyapns.com

另外件事情,要從App讀取Server資料庫顯示在Table上有很多種方式
舉個例子,實作PHP+MySQL秀出JSON給App抓
如果對這方面的領域不瞭解就會很辛苦

最後...選擇Swift的原因是什麼呢?
因為Swift才剛出來沒多久,現階段要參考的資料有限,當然要學習也不是說難或簡單
至於Objective-C能參考資料就比較多了,但可能也比較難學,這部分就要看學習能力跟天份了
Lpopoinc wrote:
樓主 給你提供幾個...(恕刪)


雖然我不是樓主

可是我很想問

是不是比較簡單只有從Socket(Socket/WebSocket)下手惹?


其實還有幾種方法:

1. APP去抓資料庫, 把資料庫當做Message Queue, 不過這個非常不建議做...

2. 伺服器端發送信息到Message Queue, 比如說Zero-MQ, RabbitMQ, 然後iOS端在用去Message Queue裡面收資料

3. 建立一個HTTP伺服器, 利用RestAPI接收信息 (Django Rest API + Apache Web Server/Gunicorn 或是 Python Tornado)


你說讓APP去抓是上述的幾種嗎?

BlackMatrixZero wrote:
雖然我不是樓主可是...(恕刪)


負責安卓部分的同學已經完成了,

好像是把資料庫讀到JSON然後再讓 app 去 JSON 抓的樣子,

所以是不是像這個網站的範例一樣 http://www.dotblogs.com.tw/yang5664/archive/2012/03/15/70753.aspx

單純丟一個訊息,跟聊天室我都有稍微練習了,

再來就是向資料庫要東西,

應該就是跟網站中一樣吧

黑色鮪魚 wrote:
負責安卓部分的同學...(恕刪)


根據你的題目:

大致上就是只用者可以從 web 端將訊息進行排程,然後在指定時間推播到 app 裡


使用者從WEB網頁將信息進行排程, 然後發送到手機上

這類事情如果是APP到資料庫抓, 是不對的, 雖然是寫得出來, 可是會有很多問題:

1. 你要不定時的去資料抓, 這非常沒效率, 而且用戶多, 馬上就拖垮資料庫

2. SQL伺服器一般對於插入, 更新, 尋找非常快, 可是對於一個Table來說, 他三個沒辦法同時都很快, 因為你要常常找的話, 你必須要用到Index, 這樣會增加尋找的速度, 可是這樣就會拖垮插入, 因為他必須要重新算一個Index對於你剛剛插入的東西

3. 如果有一次性訊息, 如果一多, 東西太多會有效率上的問題, 而且資料庫對於刪除其實很慢

4. 如果你今天信息要share到不同的手機上面, 你要怎麼處裡? 這將會是一場災難...


請善用Message Queue丟信息, 然後APP接收, 其他處理就交給伺服器端吧

不過如果是小題目的話 其實用資料庫也行

BlackMatrixZero wrote:
根據你的題目:大致...(恕刪)


原來如此,稍微有點明白,大意上就是實際執行上會很沒效率,應該用別種方法實現吧。

因為這目前只是個小專題,所以光看到安卓那部分能收到資料我就覺得很厲害了XD,(我們小組比較有經驗的就是著手安卓的同學)

雖然老師好像希望這會是個能夠上架的 app,才會先買了一年的蘋果開發者年費。

我是覺得給我用超浪費的。






kitschH wrote:
黑色鮪魚 哩後提供...(恕刪)


你好,感謝你的回覆!

您給的這個網站我曾經看過了,不過你讓我我重看了一次,多少也比上次明白一些(一些些)


至於 MAC 為何要被分配去做 ios ,我想就當一個機會吧,雖然不一定學得會,甚至可能僅止於將專題完成,不過多少接觸一點還是很有趣的,也有了個跟大家討論的機會(雖然完全是被單方面的被大家幫助了,根本沒有討論

黑色鮪魚 wrote:
原來如此,稍微有點...(恕刪)


如果不需要考量即時讀取資料
使用 JSON 就可以做到顯示資料庫內容也較容易
另外就是 APNS 在憑證上需要多費心思
  • 3
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?