代码之家  ›  专栏  ›  技术社区  ›  boski

WP7中具有特殊应用程序启动功能的新瓷砖

  •  0
  • boski  · 技术社区  · 12 年前

    我有问题。我有一个电话簿应用程序。我想创建Tile(在Windows Phone主屏幕中),在我单击主屏幕上的Tile后,它会调用该号码。

    这可能吗?我该怎么做才能做出这样的东西?我可以创建自定义Tile,或者我应该在应用程序启动后创建一些方法?

    3 回复  |  直到 12 年前
        1
  •  3
  •   Johan Falk Francois Rossello    12 年前

    使用以下代码创建活动互动程序:

    string number = "000 - 000 000";
    ShellTile tile = ShellTile.ActiveTiles.FirstOrDefault(t => t.NavigationUri.ToString().Contains("phone=" + number));
    
    if (tile == null)
    {
       StandardTileData tileData = new StandardTileData();
       tileData.Title = "Call " + number;
       ShellTile.Create(new Uri("/MainPage.xaml?phone=" + number, UriKind.Relative), tileData);
    }
    

    然后覆盖MainPage.xaml中的OnNavigatedTo,并添加以下代码:

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
       if (NavigationContext.QueryString.ContainsKey("phone"))
       {
           string number = NavigationContext.QueryString["phone"];
           PhoneCallTask task = new PhoneCallTask();
           task.PhoneNumber = number;
           task.Show();
        }
        base.OnNavigatedTo(e);
    }
    

    如果您还没有完成,还需要添加 "ID_CAP_PHONEDIALER" 中的能力 WMAppManifest.xml 文件,否则在调用时会得到一个异常 task.Show(); 在上面

    现在,您得到了一个实时互动程序,当单击它时,它将启动应用程序并拨打该号码(但用户仍必须在对话框中确认,这是您无法禁用的)

        2
  •  1
  •   CSharpCoder    12 年前

    你有没有尝试过翻转瓷砖和使用类似的东西:

    http://blog.ecofic.com/?p=406

    将号码写入隔离存储器,然后当他们单击磁贴时,您读取隔离存储器并拨打该号码。

        3
  •  0
  •   Dan Colasanti    12 年前

    您也可以使用CodePlex的Mangopollo库来创建第二个活动磁贴: http://mangopollo.codeplex.com/