如何从Xamarin的iOS应用程序打开Facebook/Twitter应用程序

本文关键字:应用程序 Twitter Facebook iOS Xamarin | 更新日期: 2023-09-27 17:57:50

我正在用C#开发一个带有Xamarin的iOS应用程序。

我有一个"联系人"UIViewController,有一些按钮,包括Facebook和Twitter。

我需要从我的应用程序中打开带有特定Facebook页面和Twitter个人资料的Facebook和Twitter应用程序。

最好的方法是什么?

如何从Xamarin的iOS应用程序打开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年在iOSAndroid中为我工作的代码。如果安装了推特/脸书应用程序,它将在其中打开,如果没有安装,则在浏览器中打开。

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模式。我建议不要使用它。