网站调用新浪微博内容( 安卓项目添加新浪微博一件关注的功能,注册什么SDK)
优采云 发布时间: 2022-04-03 22:12网站调用新浪微博内容(
安卓项目添加新浪微博一件关注的功能,注册什么SDK)
调用新浪微博展示用户信息
最近需要在开发的Android项目中添加新浪微博的关注功能。本来是一个很简单的功能,就是调用新浪微博客户端的Activity来展示用户信息,然后用户就可以点击关注按钮了。它原本是一个非常简单的功能。网上能找到的代码几乎都是JS代码,或者注册新浪微博SDK的代码。这么简单的功能,应该不需要注册任何SDK,也不想参与任何JS。研究一下新浪微博客户端的Activity就好了。
首先,我们需要使用AXMLPrinter2.jar反编译新浪微博的AndroidManifest.xml,找到显示用户信息的页面。反编译后的代码如下:
java -jar AXMLPrinter2.jar AndroidManifest.xml > a.xml
打开反编译的a.xml,搜索userinfo,幸运的是找到了UserInfoActivity,如下图:
UserInfoActivity 注册了两个意图过滤器。第一个注册的url是sinaweibo://userinfo?uid=3444956000。有了这些信息,通过如下代码调用新浪微博客户端显示用户信息:
var intent = new Intent(Intent.ActionView);
var uri = Android.Net.Uri.Parse("sinaweibo://userinfo?uid=3444956000");
intent.SetData(uri);
var chooseIntent = Intent.CreateChooser(intent, "Weibo");
StartActivity(chooseIntent);
不过以上代码的前提是用户已经安装了新浪微博客户端,否则运行会报错。好在还有第二个,我们可以用下面的代码来调用:
var intent = new Intent(Intent.ActionView);
var uri = Android.Net.Uri.Parse("https://weibo.cn/qr/userinfo?uid=3444956000");
intent.SetData(uri);
var chooseIntent = Intent.CreateChooser(intent, "Weibo");
StartActivity(chooseIntent);
上面代码的效果是:
如果用户没有安装新浪微博,直接调用浏览器打开地址;如果用户安装新浪微博,会弹出如下对话框供用户选择:
再次鄙视新浪微博的开放性,但这个功能是不开放的。