作者p31819 (凜大小姐~最高!!)
看板AndroidDev
標題[問題] startActivity問題
時間Mon Oct 1 10:26:04 2018
各位大大好,小弟最近在整合Line Pay
他需要使用url來跳轉到Line的App來進行付款。
這時遇到一個奇怪的問題不知該如何解決。
按照文件收到Api回覆後有個跳轉Line的url
然後使用他文件的code來跳轉
Uri uri = Uri.parse(urlString);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
這樣的方式,
但是第一次跳轉沒問題,第二次跳轉就會沒有反應。
第三次又可以跳轉。
沒反應的那次也不會有任何錯誤訊息。
我試著打Log看activity生命週期資訊,
正常的情況是onPause之後就會跳到Line App,
然後原本的activity會進入onStop。
跳轉失敗的情況會onPause後,
直接接onResume回原來的activity。
https://i.imgur.com/noGyFmP.jpg
完全不知道從何下手,
不知道有沒有大大有什麼建議?
感謝。
--------------------------------------------------
https://github.com/ChangHungChih/LinePayEx
補上github
code是在MainActivity跳轉
不過LinePay很難測試
有意願幫忙測試的大神
再來信跟我拿後台帳號,要把IP加進白名單才能用
---------------------------------------------------
https://pay.line.me/tw/developers/documentation/download/tech?locale=zh_TW
補上Line Pay的整合文件
流程是
1.呼叫reserveApi,傳給line confirmUrl,並收到回傳的paymentUrl
2.用startActivity執行paymentUrl跳轉至line app 付款頁面
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^這段出問題,使用的是文件第54頁的code
3.在line app 付款完後,line會跳轉第一點傳的confirmUrl
4.在confirmUrl中處理最後的付款確認請求回覆,完成付款流程
我在confirmUrl確認付款完後,又用startActivity跳回MainActivity
然後再進行一次上面的流程就會在第二點出現本次的問題。
我有想過問題會不會是confirmUrl的設定,
我是用scheme做了一個網址執行可以跳進來我的app
但是因為之後是跳回mainActivity執行startActivity出問題的,
感覺關聯性不高。
confirmUrl的設定如下圖
https://i.imgur.com/2wJ6NXk.jpg
傳給Line 的Url 是 lafresh://auth_activity
這邊可能是會有問題,但又看不出啥關聯。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.72.231.7
※ 文章網址: https://webptt.com/m.aspx?n=bbs/AndroidDev/M.1538360768.A.01E.html
※ 編輯: p31819 (211.72.231.7), 10/01/2018 11:23:30
1F:推 bearkevin: 看看失敗的時候 url 跟成功的時候 是一樣的嗎? 10/01 12:12
2F:→ p31819: 一樣的url,再startActivity一次會成功 10/01 14:26
3F:→ starburs: 那第四次第五次呢 會不會是因為他還在parse的過程中你又 10/01 20:08
4F:→ starburs: 按了按扭導致失敗 10/01 20:08
5F:→ erty0402: 先看看每次launch的是不是同一個instance 10/01 22:41
6F:→ p31819: 不會是多按按鈕的失敗,因為本來是自動執行的讓他跑失敗 10/02 09:38
7F:→ p31819: 為了debug改停住自己按是為了確定是startActivity的問題 10/02 09:39
8F:→ p31819: 多按幾次沒試過,因為成功的話就會跳過去了 10/02 09:42
9F:→ p31819: launch是不是同一個instance? 不太懂什麼問題 我用同一個 10/02 09:42
10F:→ p31819: Url要startActivity有時失敗有時成功 10/02 09:43
※ 編輯: p31819 (211.72.231.7), 10/02/2018 09:46:49
11F:→ p31819: 小弟傳到github,還懇請大大們幫忙看有沒有啥頭緒QQ 感謝 10/02 09:47
12F:→ y3k: 換startActivityForResult()看看 還有中間再隔一個空的Activi 10/02 23:41
13F:→ y3k: ty也可以試試 這招我解某個遙遠的奇怪bug時用過 10/02 23:42
14F:推 t52101t: 第一次跳轉到第二次跳轉之間 你是點返回按鈕回到你的App 10/03 00:46
15F:→ t52101t: 的嗎? 10/03 00:46
※ 編輯: p31819 (211.72.231.7), 10/03/2018 09:55:03
16F:→ p31819: 補上Line Pay文件及流程,第一次和第二次之間跳轉補在內文 10/03 09:56
17F:→ p31819: startActivityForResult我記得就原始碼來說都會執行到這步 10/03 09:58
18F:→ p31819: startActivity之後是會執行startActivityForResult的 10/03 09:59
19F:→ p31819: 補充這問題 1.不同手機不一定會發生 2.不同時段不一定會發 10/03 10:03
20F:→ p31819: 生。 3.和android版本似乎沒關係,同版本有的好有的發生 10/03 10:04
21F:→ p31819: 有人會懷疑是server問題,但是paymentUrl跳轉App是不透過 10/03 10:05
22F:→ p31819: server的。所以單純是在單機上startActivity的問題 10/03 10:05
23F:→ p31819: 結果似乎是Line的問題,在更新到8.15.3版後就沒問題了... 10/25 15:36