android textview 点击打开facebook个人专页,如果没有则跳到浏览器显示
来源:互联网 发布:解剖学软件哪个好 编辑:程序博客网 时间:2024/06/04 19:51
现在有这样的一个需求:界面上有一个facebook的连接,当用户点击这个facebook的链接之后,如果手机上安装了facebook的客户端,则打开facebook软件,如果没有安装软件,则打开浏览器访问这个链接,在论坛上提了这个问题,大神给出的答复:
Intent intent;
PackageManager packageManager = getPackageManager();
intent = packageManager.getLaunchIntentForPackage("com.facebook.katana");
if (intent==null){
intent = new Intent();
intent.setAction("android.intent.action.VIEW");
// 打开url
Uri content_url = Uri.parse("http://facebook.com/");
intent.setData(content_url);
startActivity(intent);
}else {
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
还没实验过,不过应该是可行的,已经遇到很多这种问题了,所以关键是知道该应用的包名,还有判断intent是否为空,选择是浏览器还是打开应用。
--------------------------------2015年9月28日11:51:07 更新————————————
已经上机试验过是可行的,因为无法访问facebook,我就用uc浏览器测试了一下,是可行的,代码如下:
Intent intent;PackageManager packageManager = getActivity().getPackageManager();intent = packageManager.getLaunchIntentForPackage("com.UCMobile");if (intent == null) {intent = new Intent();intent.setAction("android.intent.action.VIEW");// 打开urlUri content_url = Uri.parse("http://www.uc.cn/topic/android8.4/");intent.setData(content_url);startActivity(intent);} else {intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED| Intent.FLAG_ACTIVITY_CLEAR_TOP);startActivity(intent);}
所以举一反三了,只要知道应用的包名就可以打开该应用,分享一个常见软件的包名和主activity,链接如下:常见软件包名和主activity
这里提出一个问题,是否可以传递数据给facebook的应用呢?
============================更新日期,2016年1月5日15:46:36===========================
上述回答并没有解决好,当已经安装了facebook的app时,点击该文字跳转到某个人的粉丝专页上,所以就需要使用如下代码进行打开:
// 加载facebook连接,如果没有安装facebookapk则打开浏览器进行打开public final void launchFacebook() {final String urlFb = "fb://page/<span style="color:#ff0000;">162432683815485</span>";Intent intent = new Intent(Intent.ACTION_VIEW);intent.setData(Uri.parse(urlFb));final PackageManager packageManager = getActivity().getPackageManager();List<ResolveInfo> list = packageManager.queryIntentActivities(intent,PackageManager.MATCH_DEFAULT_ONLY);//过滤查找是否安装了facebook应用if (list.size() == 0) {final String urlBrowser = "https://www.facebook.com/FEIBMARGINTRADING/";intent.setData(Uri.parse(urlBrowser));}startActivity(intent);}
红色的是这个人的facebook的id号,可以在浏览器,通过右键查看源代码,查看他的id号,这样就可以实现由facebook的app的时候,点击则跳转到他的个人专页,如果没有安装facebook的app则跳转到浏览器显示,参考如下的国外连接:
android 跳转到facebook个人专页 还有这个关于intent.aciton_view以及各种软件的rui的连接,感谢这位前辈的连接介绍:android uri action大全
由于实现方式较老,有网友提出上述方式失效,改用如下:
这种方式已失效了;最新解决方法,可以参考:public static Intent newFacebookIntent(PackageManager pm, String url) {Uri uri = Uri.parse(url);try {ApplicationInfo applicationInfo = pm.getApplicationInfo("com.facebook.katana", 0);if (applicationInfo.enabled) {// http://stackoverflow.com/a/24547437/1048340uri = Uri.parse("fb://facewebmodal/f?href=" + url);}} catch (PackageManager.NameNotFoundException ignored) {}return new Intent(Intent.ACTION_VIEW, uri);}
- android textview 点击打开facebook个人专页,如果没有则跳到浏览器显示
- android TextView setTextColor没有显示
- TextView识别超链接,点击可以打开浏览器进行跳转
- Android TextView 显示网络图片,点击放大
- android 点击选择浏览器打开链接
- android 点击按钮打开浏览器网页
- 怎样通过flash模板安装Facebook专页
- 关于listview的item中如果有textview,listview点击item没有效果的解决办法
- 在浏览器中,点击:打开小窗口显示图片!
- android如果给TextView或EditText的email链接加下划线,并在点击在email连接上可以弹框显示
- android textview 设置超链接打开手机浏览器浏览链接数据
- android(27)(显示意图之打开浏览器)
- 超简单实现TextView中某段文字超链接点击打开浏览器跳转到网页
- TextView--判断TextView有没有显示完全(即有没有出现省略号),若果没有显示完全,则点击某个按钮查看全部
- Android TextView内容过长加省略号,点击显示全部内容
- Android TextView内容过长加省略号,点击显示全部内容
- Android TextView内容过长加省略号,点击显示全部内容
- Android TextView内容过长加省略号,点击显示全部内容
- eclipse debug技巧
- spring MVC 配置返回JSON格式的数据模型
- AngularJS小结
- spark高级文本处理技术--spark-Machine Learning With Spark
- 发现一个oracle11 g 新特性挺有意思
- android textview 点击打开facebook个人专页,如果没有则跳到浏览器显示
- 面试题之输入一个长整形,如123456,请反序输出
- 包含min函数的栈
- poj题目分类 很有层次感
- iOS/OS X开发:各种工具快到碗里来
- ffmpeg入门小结(一)—— YUV格式示例
- Android自定义控件——自定义属性
- Android通过代码进行多屏幕适配
- 栈的压入、弹出序列