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

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

发现原来是,清单里面注册的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. python 输出奇偶数并排序

    random_numbers = [] for i in range(40): random_numbers.append(random.randint(1, 100)) num1 = [] num2 ...

  2. ES6相关特性(解构赋值)

    解构赋值:本质上是一种匹配模式,等号两边的模式相同,则左边的变量可以被赋予对应的值. 注意:null & undefined 不能解构赋值!!! 数组的解构赋值: let [a,[[b],c] ...

  3. canvas 绘制八卦图

    绘制要点: 1.getContext('2d'); -->绘图环境,2维空间 2.fillRect(x,y,w,h); -->矩形:实心(黑色背景) 3.strokeRect(x,y,w, ...

  4. 动态控制C4C UI元素的显示和隐藏

    C4C UI上UI元素的显示和隐藏可以通过Key User在Adaptation模式里通过编辑一些简单的rule去控制,诸如这种格式: if ( logic expression = true ) t ...

  5. SQL:获取语句执行时间

    项目中查看数据库查询语句执行时间,脚本如下: --清除缓存 CHECKPOINT; DBCC DROPCLEANBUFFERS; DBCC FREEPROCCACHE; DBCC FREESYSTEM ...

  6. python 笔记1:官网下载及安装python;eclipse中安装配置pydev

    1  下载安装python. 官网:https://www.python.org/downloads/     根据自己的操作系统选择需要的版本下载并安装. 我的电脑操作系统windows xp的,只 ...

  7. pt-table-sync

    高效的同步MySQL表之间的数据,他可以做单向和双向同步的表数据.他可以同步单个表,也可以同步整个库.它不同步表结构.索引.或任何其他模式对象.所以在修复一致性之前需要保证他们表存在.   使用范例: ...

  8. Uva 11401 数三角形

    题目链接:https://uva.onlinejudge.org/external/114/11401.pdf 题意:1~n个数里面挑3个不同的数,组成一个三角形.求方案数. 分析: 令最长的边为X, ...

  9. Poj(2240),Floyd求汇率是不是赚钱

    题目链接:http://poj.org/problem?id=2240. Floyd算法修改一下,我要最大路径(通过转汇率变到最大)改成max. #include <iostream> # ...

  10. 【转】Activity生命周期详解

    三个循环 提供两个关于Activity的生命周期模型图示帮助理解:                                           图1 图2 从图2所示的Activity生命周期 ...