|
|
导航: |
论坛 -> 移动应用开发
斑竹:flyers,iamdream |
|
作者: |
|
2017/12/12 12:34:45 |
标题: |
[求助]关于安卓平台Intent的问题 |
浏览:852 |
|
加入我的收藏 |
楼主: |
采用RAD 10.1.2版本
DEMO APP结构如下: Form -->Home Frame --> PhotoFrame -->Image(分享的图片) APP实现微信分享图片,采用调用系统方式,非SDK。现在存在2个问题:
1、采用系统Share方式,分享后,返回将会直接退出到 Home Frame 上,并非在PhotoFrame。非常影响用户体验,因为PhotoFrame有个Listbox列表,用户可能要分享多次。每次分享完,都要再重新进入PhotoFrame。
曾将Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); 改为Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NO_HISTORY); 效果一样。
2、分享到特定的App Intent.setPackage("com.tencent.mm");可以分享:发送朋友、发送到朋友圈、添加收藏 但是如果用 Intent.setClassName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareImgUI");指定只分享朋友功能。这个功能是失效的。会列出全部分享内容,如:百度、QQ、彩信、微信、朋友圈、收藏等等
----------------------------------------------
- |
作者: |
|
2017/12/13 0:18:12 |
1楼: |
解决:经过多次测试,终于找到答案。 1、并非setFlags,addFlags的问题,下面方式修改官方源码后正常; 2、修改后Intent.setClassName也能正常指定发送朋友。
把官方: ChooserCaption := GetChooserCaption(FDataType); IntentChooser := TJIntent.JavaClass.createChooser(Intent, StrToJCharSequence(ChooserCaption)); TAndroidHelper.Activity.startActivityForResult(IntentChooser, 0);
改为即可: TAndroidHelper.Activity.startActivityForResult(Intent, 0);
看上去,只是取消了“创建选择器”这个页面,但是就是OK了,不要问我为什么,因为我也不懂,测试出来的(不知道与手机制造商有没有关系,我两台都是华为)。
----------------------------------------------
-
|
|