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

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

发现原来是,清单里面注册的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. selenium找不到元素

    1.页面元素处于不显示状态时,找不元素.必须使元素处于显示状态.使用js 或者 元素的点击事件等方式可以实现. " src="index.php?m=Index&a=Men ...

  2. eclipse:maven工程下显示不出文件,但系统存在,可能是这个原因

  3. php的yii框架开发总结10

    1.CActiveForm是Chtml类的封装,但是它有数据验证的功能,有三种方式:服务器端.客户端.Ajax数据验证. 服务器端验证:当整个表单页面被提交后,在服务器端 进行验证.如果存在任何验证错 ...

  4. .net core 操作域控 活动目录 ladp -- Support for System.DirectoryServices for Windows

    原文链接:https://github.com/dotnet/corefx/issues/2089 1. @ianhays to kick start the project in CoreFX re ...

  5. IOS NSThread(线程同步)

    @interface HMViewController () /** 剩余票数 */ @property (nonatomic, assign) int leftTicketsCount; @prop ...

  6. Http之基础

    简介 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准. HTTP是一个基于TCP/I ...

  7. JS isArray、typeof、instanceof

    Array.isArray() 用来检验是不是数组 var a = [1,2,3] console.log(typeof a); // object console.log(Array.isArray ...

  8. Vue项目架构设计与工程化实践

    摘自Berwin<Vue项目架构设计与工程化实践>github.com/berwin/Blog/issues/14 1.Vue依赖套件 vuex:项目复杂后,用vuex来管理状态 elem ...

  9. LeetCode111. Minimum Depth of Binary Tree

    题目 给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 说明: 叶子节点是指没有子节点的节点. 示例: 给定二叉树 [3,9,20,null,null,15, ...

  10. Python——合集

    合集 主要功能是对比列表中的信息,进行关系测试. 特点:1. 去重,把一个列表变成合集,就自动去重了.2. 关系测试,测试两组数据之间的交集.差集.并集等关系.3. 没有插入功能,只能添加.4. 一个 ...