1. 程式人生 > >模仿支付寶語音收款提醒

模仿支付寶語音收款提醒

近期,專案需要增加語音提醒功能,收到付款後APP自動語音提醒收到**元,期間遇到眾多的坑,在此感謝那些幫我避開這些坑的大牛的幫助,以及個推的技術人員的耐心解答(雖然我整合的不是個推,但是期間我用的個推做的測試吐舌頭),在此我羅列一下我遇到的那些問題。

iOS 10以下語音提醒只能播放本地語音,實現不了播放具體的收款金額,支付寶也是這樣實現的。iOS 10以上的實現方式是系統提供了一個推送擴充套件功能(個人理解相當於建立了一個依附APP,依賴於主APP的生命週期),收到推送訊息後推送的內容會來到這個依附的APP的方法中,以此來實現播放的具體金額的功能。

好了,話不多說,開始吧...

  

建立好後xcode會自動為我們建立一個資料夾

,這個時候我們的專案就會有這個推送擴充套件了,

首先需要我們在新建立的資料夾中的info.plist配置一下允許HTTP

選擇這個推送擴充套件,編譯,有時xcode會自動為我們配置好證書,有時候不會,沒有自動配置證書也沒關係,對於這個推送擴充套件我們不需要重新申請證書,只需要用原來的證書就可以。


這裡面有需要注意的幾個點:1.需要選擇對應的target,選擇這個擴充套件的target

2.bundle idetifier 專案唯一標示是在原來APP的專案唯一標示上自動生成的,這點不用我們自己去改

3.如果xcode沒有自動為我們自動選擇證書的話,我們需要把原專案的描述檔案在這個target中重新匯入一遍,自動選擇了更好,就不用操作這一步了。

4.擴充套件的target與主target的構建版本號與版本號要一致。

5.推送測試的話一定要選擇推送擴充套件的target。

6.選擇的推送擴充套件target支援的iOS版本選擇10.0以上,主target還按原來的就可以。

推送擴充套件檔案中.m的方法如圖


不管用系統帶的語音合成,還是用科大訊飛都可以,本人用的科大訊飛,

這時候又要注意一點,對這個擴充套件我們要重新匯入相應的框架才能呼叫相應的方法(個人理解跟主APP無關 所以要重新匯入),我

用的科大訊飛這是我重新匯入的相應的框架。就這樣我們就可以去相應的平臺進行推送測試了。

注意:

1.選擇推送擴充套件的target執行進行推送測試

2.後臺推送的時候,sound欄位不能用default,否則不呼叫推送擴充套件。

3.後臺推送的時候,content-available欄位設定為“1”。

4.在擴充套件.m方法中打斷點,有時候不走斷點,沒關係,斷開xcode連線試試走不走,推送擴充套件的推送包含title,可以設定一下title的名稱來區別是否走了推送擴充套件的方法。

5.如果不走,先執行一下主target,推送條內容,在執行這個擴充套件的target,再推送內容。

6.如果還沒走,刪除APP重啟一下手機試試。

7.如果還沒走,給我留言我幫你看看大笑

(寫的不好,多多擔待大笑大笑