今天测试反馈问题,说,手机上没有安装支付宝的,调用支付宝支付之后,没有回调。不提示成功也不提示失败。

我自己试了半天也都是没有问题 。后来终于可以试出来了。

发现原来是,清单里面注册的Activity 不是在我调用的进程里面。

例子:

        <activity
android:name="com.alipay.sdk.app.H5PayActivity"
android:configChanges="orientation|keyboardHidden|navigation"
android:exported="false"
android:screenOrientation="portrait" />

因为我们的插件是在android:process=”@string/plug_process_name” 这个进程里面,所以,吊起来的H5是宿主的H5页面。(宿主程序也有自己的支付宝),所以,我们收不到结果。

改成:

        <activity
android:name="com.alipay.sdk.app.H5PayActivity"
android:configChanges="orientation|keyboardHidden|navigation"
android:exported="false"
android:process="@string/plug_process_name"
android:screenOrientation="portrait" />

就可以了。

看下堆栈吧:

不可以的情况:

 Stack #1:
Task id #29
* TaskRecord{42fcded0 #29 A=com.letv.android.client U=0 sz=5}
numActivities=5 rootWasReset=true userId=0 mTaskType=0 numFullscreen=3 mOnTopOfHome=true
affinity=com.letv.android.client
intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.letv.android.client/.activity.SplashActivity}
realActivity=com.letv.android.client/.activity.SplashActivity
Activities=[ActivityRecord{4238ec30 u0 com.letv.android.client/.activity.MainActivity t29}, ActivityRecord{42af7578 u0 com.letv.android.client/com.zhangyue.iReader.main.MainActivity t29}, ActivityRecord{42b50510 u0 com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityOnline t29}, ActivityRecord{42cd2288 u0 com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityFee t29}, ActivityRecord{4240a970 u0 com.letv.android.client/com.alipay.sdk.app.H5PayActivity t29}]
askedCompatMode=false
lastThumbnail=null lastDescription=null
lastActiveTime=24055831 (inactive for 97s)
* Hist #4: ActivityRecord{4240a970 u0 com.letv.android.client/com.alipay.sdk.app.H5PayActivity t29}
packageName=com.letv.android.client processName=com.letv.android.client
launchedFromUid=10452 launchedFromPackage=com.letv.android.client userId=0
app=ProcessRecord{42c9ce60 23360:com.letv.android.client/u0a452}
Intent { cmp=com.letv.android.client/com.alipay.sdk.app.H5PayActivity (has extras) }
frontOfTask=false task=TaskRecord{42fcded0 #29 A=com.letv.android.client U=0 sz=5}
taskAffinity=com.letv.android.client
realActivity=com.letv.android.client/com.alipay.sdk.app.H5PayActivity
baseDir=/data/app/com.letv.android.client-1.apk
dataDir=/data/data/com.letv.android.client
stateNotNeeded=false componentSpecified=true mActivityType=0
compat={320dpi} labelRes=0x7f0a016b icon=0x7f0206d1 theme=0x7f0d0222
config={1.0 ?mcc?mnc zh_CN ldltr sw360dp w360dp h615dp 320dpi nrml long port finger -keyb/v/h -nav/h s.5 themeChanged=0 themeChangedFlags=0}
launchFailed=false launchCount=0 lastLaunchTime=-3m37s266ms
haveState=true icicle=Bundle[mParcelledData.dataSize=204]
state=STOPPED stopped=true delayedResume=false finishing=false
keysPaused=false inHistory=true visible=true sleeping=true idle=true
fullscreen=true noDisplay=false immersive=false launchMode=0
frozenBeforeDestroy=false thumbnailNeeded=false forceNewConfig=false
mActivityType=APPLICATION_ACTIVITY_TYPE
thumbHolder: 42fcded0 bm=null desc=null
waitingVisible=false nowVisible=true lastVisibleTime=-3m36s626ms
* Hist #3: ActivityRecord{42cd2288 u0 com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityFee t29}
packageName=com.letv.android.client processName=com.chaozh.iReader.plug.sdk
launchedFromUid=10452 launchedFromPackage=com.letv.android.client userId=0
app=ProcessRecord{42dab1f0 23547:com.chaozh.iReader.plug.sdk/u0a452}
Intent { cmp=com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityFee }
frontOfTask=false task=TaskRecord{42fcded0 #29 A=com.letv.android.client U=0 sz=5}
taskAffinity=com.letv.android.client
realActivity=com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityFee
baseDir=/data/app/com.letv.android.client-1.apk
dataDir=/data/data/com.letv.android.client
stateNotNeeded=false componentSpecified=true mActivityType=0
compat={320dpi} labelRes=0x7f0a016b icon=0x7f0206d1 theme=0x1030010
config={1.0 ?mcc?mnc zh_CN ldltr sw360dp w360dp h615dp 320dpi nrml long port finger -keyb/v/h -nav/h s.5 themeChanged=0 themeChangedFlags=0}
resultTo=ActivityRecord{42b50510 u0 com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityOnline t29} resultWho=null resultCode=4096
launchFailed=false launchCount=0 lastLaunchTime=-4m25s346ms
haveState=true icicle=Bundle[mParcelledData.dataSize=492]
state=STOPPED stopped=true delayedResume=false finishing=false
keysPaused=false inHistory=true visible=false sleeping=true idle=true
fullscreen=false noDisplay=false immersive=false launchMode=0
frozenBeforeDestroy=false thumbnailNeeded=false forceNewConfig=false
mActivityType=APPLICATION_ACTIVITY_TYPE
thumbHolder: 42fcded0 bm=null desc=null
waitingVisible=false nowVisible=false lastVisibleTime=-3m39s651ms

可以的情况:

Stack #1:
Task id #31
* TaskRecord{4332a798 #31 A=com.letv.android.client U=0 sz=4}
numActivities=4 rootWasReset=true userId=0 mTaskType=0 numFullscreen=2 mOnTopOfHome=true
affinity=com.letv.android.client
intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.letv.android.client/.activity.SplashActivity}
realActivity=com.letv.android.client/.activity.SplashActivity
Activities=[ActivityRecord{42409390 u0 com.letv.android.client/.activity.MainActivity t31}, ActivityRecord{423669a8 u0 com.letv.android.client/com.zhangyue.iReader.main.MainActivity t31}, ActivityRecord{4244f600 u0 com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityOnline t31}, ActivityRecord{4251c870 u0 com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityFee t31}]
askedCompatMode=false
lastThumbnail=null lastDescription=null
lastActiveTime=24516084 (inactive for 19s)
* Hist #3: ActivityRecord{4251c870 u0 com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityFee t31}
packageName=com.letv.android.client processName=com.chaozh.iReader.plug.sdk
launchedFromUid=10453 launchedFromPackage=com.letv.android.client userId=0
app=ProcessRecord{42c65938 26161:com.chaozh.iReader.plug.sdk/u0a453}
Intent { cmp=com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityFee }
frontOfTask=false task=TaskRecord{4332a798 #31 A=com.letv.android.client U=0 sz=4}
taskAffinity=com.letv.android.client
realActivity=com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityFee
baseDir=/data/app/com.letv.android.client-1.apk
dataDir=/data/data/com.letv.android.client
stateNotNeeded=false componentSpecified=true mActivityType=0
compat={320dpi} labelRes=0x7f0a016b icon=0x7f0206d1 theme=0x1030010
config={1.0 ?mcc?mnc zh_CN ldltr sw360dp w360dp h615dp 320dpi nrml long port finger -keyb/v/h -nav/h s.5 themeChanged=0 themeChangedFlags=0}
resultTo=ActivityRecord{4244f600 u0 com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityOnline t31} resultWho=null resultCode=4096
launchFailed=false launchCount=1 lastLaunchTime=-19s397ms
haveState=false icicle=null
state=RESUMED stopped=false delayedResume=false finishing=false
keysPaused=false inHistory=true visible=true sleeping=false idle=true
fullscreen=false noDisplay=false immersive=false launchMode=0
frozenBeforeDestroy=false thumbnailNeeded=false forceNewConfig=false
mActivityType=APPLICATION_ACTIVITY_TYPE
thumbHolder: 4332a798 bm=null desc=null
waitingVisible=false nowVisible=true lastVisibleTime=-19s230ms
* Hist #2: ActivityRecord{4244f600 u0 com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityOnline t31}
packageName=com.letv.android.client processName=com.chaozh.iReader.plug.sdk
launchedFromUid=10453 launchedFromPackage=com.letv.android.client userId=0
app=ProcessRecord{42c65938 26161:com.chaozh.iReader.plug.sdk/u0a453}
Intent { cmp=com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityOnline (has extras) }
frontOfTask=false task=TaskRecord{4332a798 #31 A=com.letv.android.client U=0 sz=4}
taskAffinity=com.letv.android.client
realActivity=com.letv.android.client/com.zhangyue.iReader.online.ui.ActivityOnline
baseDir=/data/app/com.letv.android.client-1.apk
dataDir=/data/data/com.letv.android.client
stateNotNeeded=false componentSpecified=true mActivityType=0
compat={320dpi} labelRes=0x7f0a016b icon=0x7f0206d1 theme=0x7f0d016d
config={1.0 ?mcc?mnc zh_CN ldltr sw360dp w360dp h615dp 320dpi nrml long port finger -keyb/v/h -nav/h s.5 themeChanged=0 themeChangedFlags=0}
resultTo=ActivityRecord{423669a8 u0 com.letv.android.client/com.zhangyue.iReader.main.MainActivity t31} resultWho=null resultCode=4608
launchFailed=false launchCount=0 lastLaunchTime=-22s201ms
haveState=true icicle=Bundle[mParcelledData.dataSize=432]
state=STOPPED stopped=true delayedResume=false finishing=false
keysPaused=false inHistory=true visible=true sleeping=false idle=true
fullscreen=false noDisplay=false immersive=false launchMode=0
frozenBeforeDestroy=false thumbnailNeeded=false forceNewConfig=false
mActivityType=APPLICATION_ACTIVITY_TYPE
thumbHolder: 4332a798 bm=null desc=null
waitingVisible=false nowVisible=true lastVisibleTime=-22s89ms

自己搞了一天的时间。当然,我查到是收不到支付宝的回调,然后不再继续追查为什么收不到回调。说是支付宝的问题。但是,当我看到,自己的demo里面可以。那么,好奇心驱使我继续追查。也想过半路而费,这个棘手的问题,就是我的勋章。以后面试的时候,可以说了。

Android 支付宝H5 没有回调的更多相关文章

  1. IOS 支付宝、微信回调传值给H5网页

    这里用是的苹果原生和JS的交互 .有不明白JavaScriptCore框架的可以去网上搜索下这方面的资料很多废话不多说直接上代码 @protocol JSContextDelegate <JSE ...

  2. quick-cocos2d-x 实现在lua里面完成android支付宝的接入

    quick-cocos2d-x 实现在lua里面完成android支付宝的接入 一.支付宝注册是很麻烦的一个过程,本文就不解释了,想了解的去官网看下注册流程.然后下载他们的sdk-WS_SECURE_ ...

  3. Android与H5交互(java与js的交互)

    一.理论概述 1.js调用java方法 直接调用WebView的该方法就可以添加接口了,不过先要启动交互 // 启用javascript mWebView.getSettings().setJavaS ...

  4. android支付宝app支付(原生态)-包括android前端与java后台

    本文讲解了 android开发的原生态app集成了支付宝支付, 还提供了java后台服务器处理支付宝支付的加密代码, app前端与java后台服务器使用json数据格式交互信息,java后台服务主要用 ...

  5. Android与H5交互 原理与对比

    原文:  https://www.jianshu.com/p/345f4d8a5cfa 1.Android调用JS的方法有2种: (1)通过WebView的loadUrl() // 调用js中的函数: ...

  6. 支付宝H5、APP支付服务端的区别(php)

    php支付宝H5和APP支付1.准备工作需要前往 蚂蚁金服开放平台申请https://openhome.alipay.com/developmentDocument.htm 2.大致流程1.用户添加商 ...

  7. (转载)Android支付宝支付封装代码

    Android支付宝支付封装代码 投稿:lijiao 字体:[增加 减小] 类型:转载 时间:2015-12-22我要评论 这篇文章主要介绍了Android支付宝支付封装代码,Android支付的时候 ...

  8. Android中的接口回调技术

    Android中的接口回调技术有很多应用的场景,最常见的:Activity(人机交互的端口)的UI界面中定义了Button,点击该Button时,执行某个逻辑. 下面参见上述执行的模型,讲述James ...

  9. JAVA回调函数ANDROID中典型的回调地方

    在计算机中回调函数是指通过函数参数传递到其他代码类的,某一块可执行代码的引用,这以设计允许了底层代码调用者在高层定义的子程序. 在JAVA里面我们使用接口的方式来实现函数的回调. 回调的通俗就是:程序 ...

随机推荐

  1. [bootstrap]模态框总结

    <!--data-backdrop禁止点击空白处关闭模态框,也可以js设置,其他参数可参考官网模态框文档--> <div class="modal fade" i ...

  2. Azure进阶攻略 | 下载还是在浏览器直接打开,MIME说了算!

    多年来,从一开始的网络菜鸟发展成 Azure 云专家,想必你一定学到了很多知识.不知道在这个过程中你自己是否遇到过,或者被人问到过类似下面这样的问题: 同样是直接点击网页上提供的 .mp4 视频文件链 ...

  3. vos2009如何监听客户行业是否正规

    在对接被叫改写规则中将改写规则由原来0:9150 改为0:9150+自己手机号,这样客户打出话全转接到自己手机上,可以接听客户销售行业:

  4. ASP.NET Core - 各项配置

    之前搭建好了各项开发环境,现在来说说ASP.NET Core的各项配置.项目结构.以及在请求管道中挂载的各式各样的中间件.今天先来探讨探讨其各项配置及其项目结构   ASP.NET Core和上一代F ...

  5. CRM WebClient UI和Hybris里工作中心跳转的url生成逻辑

    CRM WebClient UI 把Work center的navigation target在client side不可见:在Chrome development tool里看不到,而是点击了Wor ...

  6. VR社交软件测试-AltspaceVR

    该VR社交软件中的主界面主要分为,Events:事件:Activities:多人游戏:Words:别人创建的虚拟世界.进入游戏后可以进入场景与世界各地的人进行交谈,以虚拟3D人物的方式显示用户,具有较 ...

  7. Codeforces Round #347 (Div.2)_A. Complicated GCD

    题目链接:http://codeforces.com/contest/664/problem/A A. Complicated GCD time limit per test 1 second mem ...

  8. Fluent经典问题答疑

    原文链接1 原文链接28 什么叫边界条件?有何物理意义?它与初始条件有什么关系? 边界条件与初始条件是控制方程有确定解的前提. 边界条件是在求解区域的边界上所求解的变量或其导数随时间和地点的变化规律. ...

  9. 前端jQuery之动画操作及相关演示

    1.显示动画 1.1无参数,直接让指定的元素显示出来 $("div").show(); 1.2通过控制宽高,透明度,display属性逐渐显示,指定时间现实完毕 $('div'). ...

  10. 键盘遮挡控件(textfield/textview.......)

    采用的是通知的常规方式 // 解决键盘遮挡问题//选择didShow是因为需要键盘的高度//选择willHide是因为视图frame重置需要优先于键盘消失,否则表现得不连贯 [[NSNotificat ...