如何从Xamarin的iOS应用程序打开Facebook/Twitter应用程序
本文关键字:应用程序 Twitter Facebook iOS Xamarin | 更新日期: 2023-09-27 17:57:50
我正在用C#开发一个带有Xamarin的iOS应用程序。
我有一个"联系人"UIViewController
,有一些按钮,包括Facebook和Twitter。
我需要从我的应用程序中打开带有特定Facebook页面和Twitter个人资料的Facebook和Twitter应用程序。
最好的方法是什么?
试试这个:
Device.OpenUri(new Uri("fb://page/page_id"));
Device.OpenUri(new Uri("twitter://user?user_id=userid"));
对于page_id
,右键单击页面并选择查看源页面,然后为facebook查找page_id
,与为twitter查找userid
相同
除了已接受的答案外,以下是我在外部应用程序中打开链接的发现
在浏览器中打开链接:
Device.OpenUri(新Uri("http://example.in/index.html"));
在facebook上打开群组:
Device.OpenUri(新Uri("fb://group/groupname"));
在facebook中打开页面:
Device.OpenUri(新Uri("fb://page/page_id"));
在instagram中打开用户:
Device.OpenUri(新Uri("instagram://user?username=yourUserName"));
在twitter中打开用户:
Device.OpenUri(新Uri("twitter://userName?user_id=userId"));
打开邮件应用程序:
Device.OpenUri(新Uri("mailto:example@gmail.com"));
如果您使用Xamarin,也可以使用这些方法。Forms:
await Launcher.OpenAsync(new Uri("your-link");
await Launcher.TryOpenAsync(new Uri("your-link");
await Launcher.CanOpenAsync(new Uri("your-link");
await Browser.OpenAsync("your-link");
据我记忆所及,浏览器会尝试用它的默认应用程序启动url,如果你使用时安装在手机上
BrowserLaunchMode.SystemPreferred
对于那些在我之后到达此页面的人,Device类已被弃用。您现在应该使用Xamarin.Essentials包中的Launcher类。
以下是2022年在iOS和Android中为我工作的代码。如果安装了推特/脸书应用程序,它将在其中打开,如果没有安装,则在浏览器中打开。
private async void OnTwitterClicked(object sender, EventArgs e)
{
if(!await Launcher.TryOpenAsync("twitter://user?user_id=762836470772097024"))
{
await Browser.OpenAsync("https://twitter.com/RingotanApp");
}
}
private async void OnFacebookClicked(object sender, EventArgs e)
{
if (!await Launcher.TryOpenAsync("fb://facewebmodal/f?href=https://www.facebook.com/RingotanApp"))
{
await Browser.OpenAsync("https://www.facebook.com/RingotanApp");
}
}
在iOS中,您还需要将以下内容添加到Info.plist
<key>LSApplicationQueriesSchemes</key>
<array>
<string>twitter</string>
<string>fb</string>
</array>
我用这个工具找到了我的数字Twitter ID。
Facebook的另一个URI选项是"fb://page/1761091624175851"
,其中数字ID来自";关于->更多信息";在Facebook上。然而,这个URI对我来说很糟糕——它首先会正常打开应用程序中的页面,然后切换到facewebmodal
使用的web模式。我建议不要使用它。