导航:首页 > 操作系统 > 微信sdkandroid分享

微信sdkandroid分享

发布时间:2024-03-28 10:14:02

A. android怎么把其他app的内容分享到自己的app里

很多时候我们的应用在使用微信分享内容之后,希望其他用户点击该分享内容能够跳转到我们的App,以实现闭环,这样的分享才是最有价值的。这种需求涉及到不同应用之间的交互,虽然微信提供了分享SDK,但仍然有不少限制,现在总结两种在Android平台上初步认为可行的方案:

1.分享网页,从分享的网页跳转回原App。

2.分享WXAppExtendObject类型的数据,且只能分享给好友,好友从聊天列表点击收到的分享内容可以直接跳转第三方App(前提是好友手机上已经安装了该App)。下面来详细说明两个方案,由于是在项目中实测的,为了隐私及行文方便,假设我们的应用的名字为MyApp,效果截图也就不再展示。

方案一:

从WebView(该WebView从属于另一个App,并非我们自己的App)跳转到MyApp的某个界面(这里以跳转到MyApp的Acticity A为例)。具体的实现逻辑如下:

(1)该WebView显示的网页内容只是一个超链接,自定义了一个scheme=myapp://,后边可以附加一些参数,如果需要从网页向App传值的话。

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>This is title</title>

</head>

<body>

<a href=’myapp://id=909624′>Jump to MyApp</a>

</body>

</html>

该网页在WebView打开后就是一个简单的超链接,截图不再附。

(2)MyApp中的Activity A需要配置特定的infliter,如下:

<activity

<intent-filter>

<data android:scheme="myapp" />

<action android:name="android.intent.action.VIEW" />

<category android:name="android.intent.category.DEFAULT" />

<category android:name="android.intent.category.BROWSABLE"/>

</intent-filter>

</activity>

(3)当在WebView上点击上述自定义的超链接时就可以打开MyApp的A界面,所传递的参数也可以在所跳转到的Activity中获取,方法如下:

getIntent().getScheme();//获得Scheme名称

getIntent().getDataString();//获得Uri全部路径,根据自定义的格式解析字符串即可获取我们上面附加的参数。可行的实施方案:

MyApp中调用微信分享分享网页内容,只需要在网页中嵌入跟Android客户端约定好的超链接协议scheme,那么点击时就可以跳转到MyApp。

问题1:如果用户安装了MyApp,就可以点击网页跳转,如果没有安装MyApp的话,WebView就会提示找不到该页面。制作网页时可以在网页中做检测,没安装MyApp的话,页面就重定向到应用的下载页面。

问题2:在普通App的WebView中和浏览器中上述机制是可以的,但是在微信的WebView是不可以点击直接跳转我们的应用的,可能是微信做了某些过滤,且仅仅支持跟微信有深度合作的应用的跳转,如大众点评是可以的。针对这种情况,我们可以引导用户使用浏览器打开所分享的网页,然后点击就可以跳转应用了。方案二:

使用微信SDK分享WXAppExtendObject数据给好友,好友点击跳转MyApp的某个页面(需要在分享时传递构造跳转Intent的参数)。

1.该类型的分享(具体请参考微信分享SDK)可以带几个参数,参数中必须附带一些构造跳转Intent的数据。

2.好友点击分享的内容,回调IWXAPIEventHandler接口的类的onReq方法,具体为

ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX:这种情况才会调用,此时可以取出分享时附带在参数中的一些数据,构造一个跳转Intent,调用startActivity(intent) 来打开MyApp。

由于是项目实测,这种实现方式的截图也就不传了。

问题1:该分享方式只能分享给好友,不能分享到朋友圈。

问题2:如果好友没安装MyApp,点击微信中好友分享过来的消息后无反应,无法提醒“未安装MyApp,请下载”,因为这些逻辑要实现的话本身就是在MyApp里面写的,原本没装的话根本无法检测。

问题3:WXAppExtendObject类型的分享,数据有大小限制,

extInfo(String)限制2KB;

fileData(byte[])供第三方使用的文件二进制数据,最大10M;

filePath:(String)Local directory of the file provided for applications,本身长度最大10KB,文件大小同上,不超过10M。以上就是Android平台好友点击微信分享的内容后跳转来源App的两种实现方案,各有优点和局限性,请根据自身业务需求选择合适的分享方式,由于未能附截图说明,如有哪里表述不清楚的,欢迎留言讨论。

阅读全文

与微信sdkandroid分享相关的资料

热点内容
看比赛用哪个app 浏览:970
如何评价如故app 浏览:149
建立表结构的命令 浏览:579
安卓文件为什么苹果手机打不开 浏览:82
东奥轻4可以在哪个app做题 浏览:163
金融科技加密卡 浏览:835
程序员那么开一共有多少集 浏览:980
面试程序员被问数学问题怎么办 浏览:91
背大学英语的app哪个最好 浏览:719
哪个app买的衣服好 浏览:467
天刀以前玩过的服务器忘了怎么办 浏览:211
单片机基础代码解读 浏览:233
广东青少年编程学习 浏览:509
买男士香水去哪个app 浏览:548
androidsleep函数 浏览:151
android内核代码下载 浏览:665
服务器如何添加墨迹 浏览:747
diglinux安装 浏览:279
虚拟机执行命令 浏览:445
cctv16奥林匹克频道加密播出 浏览:901