我的应用需要显示Facebook帐户。所以我希望Facebook应用程序打开,或者如果它不可用,那么Web浏览器。目前我可以用这种方式打开Twitter应用程序,系统会询问该怎么做(Twitter应用程序或浏览器)。 这是代码:
WebView myWebView = (WebView) findViewById(R.id.webViewProfile); // Create an instance of WebView and set it to the layout component created with id webview in main.xml
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.loadUrl("https://mobile.twitter.com/"+name); // Specify the URL to load when the application starts
myWebView.setInitialScale(1); // Set the initial zoom scale
myWebView.getSettings().setBuiltInZoomControls(true); // Initialize zoom controls for your WebView component
myWebView.getSettings().setUseWideViewPort(true); // Initializes double-tap zoom control
myWebView.getSettings().setUserAgentString("BumpMe");
这种方法非常好,我希望Facebook拥有相同的结果。目前我可以像这样打开Facebook应用程序:
String uri = "facebook://facebook.com/info?user="+fbid;
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
context.startActivity(intent);
但是如果没有安装应用程序,它将无法正常工作......
我怎么能像推特一样去做?
由于
答案 0 :(得分:2)
这适用于Twitter的原因是Twitter应用程序在其意图过滤器中处理https://mobile.twitter.com/ * URL;因此,当您发出具有该URL的intent时,将调用Twitter应用程序。因此,使用Facebook(或任何其他应用程序)执行此操作的唯一方法是使用与其intent过滤器中声明的模式之一匹配的URL。也许http://m.facebook.com/ ......?
答案 1 :(得分:0)
而不是为用户提供应用程序或浏览器的选择,另一种方法是尝试打开应用程序,如果无法打开网页。以下是我为Twitter做的事情:
long userID = tweet.getUser().getId();
try {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://user?user_id=" + userID));
startActivity(intent);
}catch (Exception e) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/intent/user?user_id=" + userID)));
}