0

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

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

4

3 回答 3

3

使用类似于以下代码的内容创建动态磁贴:

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"在文件中添加capability WMAppManifest.xml,否则上面调用的时候会出现异常task.Show();

现在您有了一个活动磁贴,单击该磁贴将启动应用程序并拨打该号码(但用户仍必须在对话框中确认,这是您无法禁用的)

于 2013-04-14T10:43:40.877 回答
1

您是否尝试过翻转瓷砖并使用这样的东西:

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

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

于 2013-04-13T22:29:45.103 回答
0

您还可以使用 CodePlex 中的 Mangopollo 库来创建辅助动态磁贴:http: //mangopollo.codeplex.com/

于 2013-04-16T14:30:19.297 回答