一、環(huán)境搭建
1.如何調(diào)試應(yīng)用中的頁(yè)面?
(1)使用命令`npm run debug`調(diào)試頁(yè)面(頁(yè)面通過(guò)Native渲染);
(2)使用Android SDK的`adb logcat`輸出log,或者在Android Studio中查看;
(3)引入接口`" system.prompt"`;然后`prompt.showToast(JSON.stringify(yourValue))`顯示簡(jiǎn)單信息;
(4)使用命令`npm run h5`在瀏覽器中調(diào)試頁(yè)面(頁(yè)面通過(guò)chrome瀏覽器渲染)。
2.安裝rpk包失敗,提示:"安裝失敗,請(qǐng)確認(rèn)安裝文件正確"。
問(wèn)題由于簽名引起,請(qǐng)確認(rèn)rpk包(即:項(xiàng)目`src目錄`)不存在:**中文文件名**,更新文件名后,重新打包即可。
二、應(yīng)用平臺(tái)內(nèi)運(yùn)行
1.如何全局保存應(yīng)用中各頁(yè)面的數(shù)據(jù)?
在頁(yè)面的ViewModel中使用`this.$app`來(lái)訪問(wèn)`app.mix`文件中導(dǎo)出的模塊,包括方法,數(shù)據(jù)等。保存運(yùn)行時(shí)的數(shù)據(jù)請(qǐng)使用`this.$app.$data`來(lái)存?。蝗绻麛?shù)據(jù)需要保存到手機(jī)中,方便下次用戶打開(kāi)使用,請(qǐng)使用`storage接口`。
2.HTTP請(qǐng)求接口支持Cookie嗎?
不支持。傳統(tǒng)的H5開(kāi)發(fā)中使用XHR完成HTTP請(qǐng)求響應(yīng),在本應(yīng)用中則是Native使用的,所以類(lèi)似種Cookie的需求請(qǐng)使用接口的`header參數(shù)`完成。
三、URL跳轉(zhuǎn)
1.URL跳轉(zhuǎn)配置是修改開(kāi)發(fā)者所屬公司的H5頁(yè)面,還是修改小米的快應(yīng)用頁(yè)面?
在H5頁(yè)面中配置。配置后,在H5頁(yè)面調(diào)用appRouter接口,就可以從H5頁(yè)面跳轉(zhuǎn)到快應(yīng)用了。
2.URL跳轉(zhuǎn)配置支持小米手機(jī)上安裝的所有瀏覽器嗎?
在小米手機(jī)上,MIUI開(kāi)發(fā)版7.4.0/穩(wěn)定版8.5以上,支持安裝在小米手機(jī)上的所有瀏覽器。
3.URL跳轉(zhuǎn)配置需要判斷其他手機(jī)廠商的系統(tǒng)嗎?
可以不用判斷,在其他手機(jī)廠商的系統(tǒng)上,調(diào)用這個(gè)接口不會(huì)有影響。
4.URL跳轉(zhuǎn)配置后,為什么沒(méi)有反應(yīng)?
RPK包開(kāi)發(fā)完成后,在快應(yīng)用開(kāi)發(fā)者后臺(tái)進(jìn)行提交自測(cè),并添加白名單(參考如何提交自測(cè)),然后在瀏覽器中打開(kāi)配置了URL跳轉(zhuǎn)的H5頁(yè)面,就可以看到效果了
5.URL跳轉(zhuǎn)配置有demo嗎?
有,請(qǐng)參考文檔站點(diǎn)中的`0.2-內(nèi)測(cè)上線說(shuō)明`這一節(jié)。
四、PUSH推送
1.push等相關(guān)方法需要用戶主動(dòng)調(diào)用嗎?調(diào)用時(shí)機(jī)是什么?
一般不建議讓用戶主動(dòng)調(diào)用。一般可以放到應(yīng)用初始化的地方進(jìn)行,同時(shí)`push.unsubscribe()`一般不建議使用,調(diào)用此方法后,`regId`就會(huì)失效,需要重新注冊(cè)。
2.regId怎么獲???
調(diào)用`push.subscribe()`之后,成功注冊(cè)后的`success回調(diào)`中會(huì)返回`regId`。
3.如何發(fā)送消息?
調(diào)用`push.subscribe()`成功注冊(cè)之后就會(huì)拿到一個(gè)`regId`,來(lái)標(biāo)示這個(gè)用戶。通過(guò)提供的`demo`案例,可給制定的用戶發(fā)送消息。
4.通知欄消息和透?jìng)飨^(qū)別?
如果你需要發(fā)送一個(gè)消息在手機(jī)的通知欄顯示,就用通知欄消息;如果你需要發(fā)送一個(gè)`payload`內(nèi)容給你的應(yīng)用,就發(fā)送透?jìng)飨ⅰMㄖ獧谙⒉徽撃愕膽?yīng)用是否在前臺(tái)活躍,都可以收到,透?jìng)飨⑿枰愕陌l(fā)送后,如果你的應(yīng)用活躍可以立馬收到,不活躍當(dāng)下次啟動(dòng)時(shí)會(huì)收到,在`push.on()`方法的callback中拿到payload信息。
5.如何發(fā)送全量消息?
目前快應(yīng)用只支持`regId`發(fā)送,如果需要全量發(fā)送,則需要收集所有的用戶注冊(cè)的`regId`然后在后臺(tái)保存,進(jìn)行批量發(fā)送。全量接口目前在開(kāi)發(fā)中。
6.應(yīng)用加載器發(fā)送消息收不到?
應(yīng)用加載器和hybrid采用兩個(gè)不同的通道,對(duì)于同一個(gè)app在兩個(gè)平臺(tái)上運(yùn)行regId不同,同時(shí)發(fā)送消息時(shí),才用應(yīng)用加載器需要指定為debug環(huán)境,參考demo實(shí)例。
7.同一個(gè)設(shè)備多次調(diào)用subscribe接口`regId`是否相同?
相同,如果調(diào)用`push.unsubscribe()`之后再調(diào)用`push.subscribe()`則`regId`會(huì)不同。
五、支付問(wèn)題
(一)微信支付
1.微信支付在manifest.json里面配置的`package`,`sign`和`url`是干什么用的?
快應(yīng)用的微信支付需要借助一個(gè)android app(可以是沒(méi)有對(duì)外發(fā)布的app)的相關(guān)信息才能完成支付。
`package`和`sign`是這個(gè)android app的包名和簽名。
url是在微信app支付不可用時(shí),跳轉(zhuǎn)的url鏈接,cp需要在這個(gè)url中使用微信的h5支付方式完成支付
2.如果我們公司之前已經(jīng)有一個(gè)對(duì)外發(fā)布的android app,可以直接使用這個(gè)android app的信息配置在快應(yīng)用工程里嗎?
不可以,因?yàn)槿绻謾C(jī)上同時(shí)運(yùn)行快應(yīng)用和這個(gè)android app,兩個(gè)app同時(shí)支付的時(shí)候,會(huì)導(dǎo)致回調(diào)紊亂。
建議在微信支付的后臺(tái)新建一個(gè)android app。
3.在微信支付的后臺(tái)配置新建app的時(shí)候,也需要填一個(gè)簽名,這個(gè)簽名和填在快應(yīng)用manifest.json文件中`sign`是一個(gè)值嗎?
不是,他們都是同一個(gè)android app的簽名,但是微信那邊填的是簽名的摘要,而快應(yīng)用中需要的是一個(gè)完整的簽名,所以它們不一樣,一般情況下,填在微信后臺(tái)的簽名會(huì)短很多。
4.我該如何獲取填寫(xiě)在`manifest.json`中的`sign`值呢?
把用于申請(qǐng)微信支付的android app安裝在手機(jī)上,然后安裝我們?cè)谖臋n站點(diǎn)提供的簽名獲取工具。打開(kāi)我們的工具,填寫(xiě)android app的包名,就能得到這個(gè)簽名了。
5.為什么微信h5支付后,我沒(méi)有在支付成功時(shí)收到支付回調(diào)?
目前因?yàn)榧夹g(shù)原因,微信h5支付時(shí),只能保證在打開(kāi)h5支付頁(yè)面時(shí),給快應(yīng)用一個(gè)回調(diào),尚不能在支付成功時(shí)給cp回調(diào)。
6.為什么我的測(cè)試手機(jī)上,使用getType函數(shù)總是返回mweb?
微信app的支付目前需要miui8.5+才能支持,如果總是返回mweb,請(qǐng)檢查手機(jī)rom版本是否滿足。
7.我們?yōu)榭鞈?yīng)用微信支付配置的android app還沒(méi)有被微信審核下來(lái),在這之前是否有接口可以生成一些調(diào)試用的支付訂單信息?
請(qǐng)使用:`http://wxdemo.dev.hybrid.xiaomi.com/weixin/payment/bl/tst`;另外,此接口僅用于生成測(cè)試訂單,請(qǐng)不要在壓力測(cè)試中使用此接口。
(二)支付寶支付
1.快應(yīng)用中的支付寶支付使用的訂單信息和android app中使用支付寶支付時(shí)使用的訂單信息是一樣的嗎?需不需要重新搭建支付服務(wù)器?
是一樣,不需要重新搭建支付服務(wù)器,之前發(fā)給android app的訂單信息是如何生成現(xiàn)在就如何生成,客戶端收到后直接扔給我們的支付寶支付接口就行了。