- 浏览: 59851 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (93)
- java (3)
- ios (9)
- wp (15)
- android (0)
- js (1)
- 服务器 (0)
- db (0)
- linux (1)
- python (0)
- xcode (0)
- ide (2)
- maven (0)
- spring (0)
- sql (0)
- 第三方 (1)
- nexus (0)
- nginx (11)
- tomcat (0)
- jenkins (0)
- zookeeper (1)
- git (1)
- svn (0)
- uml (0)
- redis (4)
- activemq (1)
- flume (0)
- kafka (0)
- mysql (1)
- memcached (0)
- mybatis (0)
- mac (0)
- mongo (1)
- docker (6)
- cache (0)
- jvm (0)
- markdown (0)
- springboot (24)
- mycat (3)
- LTS (3)
- 运维 (0)
- opts (1)
- netty (1)
- tcc (0)
- ffmpeg (2)
- 直播 (6)
- cxf (0)
- nodejs (0)
- storm (0)
- elasticjob (0)
- php (0)
最新评论
1.TransferPreferences属性设置:
后台传输服务上传最大文件大小为5M
通过手机网络连接最大下载大小为20M,若超过此大小,属性将自动更改为AllowBattery
通过wifi没有外部电源最大下载大小为100M,若超过此大小,属性设置为None
2.每个应用程序队列中未完成的最大请求个数为25个,最大并发数为2个,对大排队传输数位500
3.网络连接数组3G网络低于50kbps,wifi/usb网络低于100kbps会暂停传输并重试
上代码:
MainPage.xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using wp8BackgroundTransfer.Resources;
using Microsoft.Phone.BackgroundTransfer;
namespace wp8BackgroundTransfer
{
public partial class MainPage : PhoneApplicationPage
{
// 构造函数
public MainPage()
{
InitializeComponent();
}
BackgroundTransferRequest transferRequest;
private void download_click(object sender, System.Windows.RoutedEventArgs e)
{
if (BackgroundTransferService.Requests.Count() > 25)
{
return;
}
String transferFileName = "http://m.news.cn/version_wp8.txt";
Uri transferUri;
try
{
transferUri = new Uri(Uri.EscapeUriString(transferFileName), UriKind.RelativeOrAbsolute);
}
catch
{
return;
}
transferRequest = new BackgroundTransferRequest(transferUri);
transferRequest.TransferPreferences = TransferPreferences.None;
transferRequest.TransferProgressChanged += new EventHandler<BackgroundTransferEventArgs>(transfer_TransferProgressChanged);
transferRequest.TransferStatusChanged += new EventHandler<BackgroundTransferEventArgs>(transfer_TransferStatusChanged);
transferRequest.Method = "GET";
string downloadFileName = transferFileName.Substring(transferFileName.LastIndexOf("/")+1);
Uri downloadUri = new Uri("shared/transfers/"+ downloadFileName, UriKind.RelativeOrAbsolute);
transferRequest.DownloadLocation = downloadUri;
transferRequest.Tag = downloadFileName;
try
{
BackgroundTransferService.Add(transferRequest);
}
catch
{
return;
}
}
private void cancel_click(object sender, System.Windows.RoutedEventArgs e)
{
if(transferRequest != null)
removeRequest(transferRequest.RequestId);
}
void transfer_TransferProgressChanged(object sender, BackgroundTransferEventArgs e)
{
}
void transfer_TransferStatusChanged(object sender, BackgroundTransferEventArgs e)
{
BackgroundTransferRequest transfer = e.Request;
switch (transfer.TransferStatus)
{
case TransferStatus.Completed:
{
if (transfer.StatusCode == 200 || transfer.StatusCode == 206)
{
removeRequest(transfer.RequestId);
}
else
{
removeRequest(transfer.RequestId);
if (transfer.TransferError != null)
{
System.Diagnostics.Debug.WriteLine("失败:"+transfer.TransferError);
}
}
}
break;
case TransferStatus.WaitingForExternalPower:
{
System.Diagnostics.Debug.WriteLine("电力不足,不能启动");
}
break;
case TransferStatus.WaitingForExternalPowerDueToBatterySaverMode:
{
System.Diagnostics.Debug.WriteLine("省电模式,不能启动");
}
break;
case TransferStatus.WaitingForNonVoiceBlockingNetwork:
{
System.Diagnostics.Debug.WriteLine("等待网络");
}
break;
case TransferStatus.WaitingForWiFi:
{
System.Diagnostics.Debug.WriteLine("等待wifi网络");
}
break;
}
}
void removeRequest(string id)
{
BackgroundTransferRequest request = BackgroundTransferService.Find(id);
if (request != null)
{
BackgroundTransferService.Remove(request);
}
}
}
}
MainPage.xaml
<phone:PhoneApplicationPage
x:Class="wp8BackgroundTransfer.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
shell:SystemTray.IsVisible="True">
<!--LayoutRoot 是包含所有页面内容的根网格-->
<Grid x:Name="LayoutRoot" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel Orientation="Vertical">
<Button Content="download" Width="300" Height="100" Click="download_click"></Button>
<Button Content="cancel" Width="300" Height="100" Click="cancel_click"></Button>
</StackPanel>
</Grid>
</phone:PhoneApplicationPage>
后台传输服务上传最大文件大小为5M
通过手机网络连接最大下载大小为20M,若超过此大小,属性将自动更改为AllowBattery
通过wifi没有外部电源最大下载大小为100M,若超过此大小,属性设置为None
2.每个应用程序队列中未完成的最大请求个数为25个,最大并发数为2个,对大排队传输数位500
3.网络连接数组3G网络低于50kbps,wifi/usb网络低于100kbps会暂停传输并重试
上代码:
MainPage.xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using wp8BackgroundTransfer.Resources;
using Microsoft.Phone.BackgroundTransfer;
namespace wp8BackgroundTransfer
{
public partial class MainPage : PhoneApplicationPage
{
// 构造函数
public MainPage()
{
InitializeComponent();
}
BackgroundTransferRequest transferRequest;
private void download_click(object sender, System.Windows.RoutedEventArgs e)
{
if (BackgroundTransferService.Requests.Count() > 25)
{
return;
}
String transferFileName = "http://m.news.cn/version_wp8.txt";
Uri transferUri;
try
{
transferUri = new Uri(Uri.EscapeUriString(transferFileName), UriKind.RelativeOrAbsolute);
}
catch
{
return;
}
transferRequest = new BackgroundTransferRequest(transferUri);
transferRequest.TransferPreferences = TransferPreferences.None;
transferRequest.TransferProgressChanged += new EventHandler<BackgroundTransferEventArgs>(transfer_TransferProgressChanged);
transferRequest.TransferStatusChanged += new EventHandler<BackgroundTransferEventArgs>(transfer_TransferStatusChanged);
transferRequest.Method = "GET";
string downloadFileName = transferFileName.Substring(transferFileName.LastIndexOf("/")+1);
Uri downloadUri = new Uri("shared/transfers/"+ downloadFileName, UriKind.RelativeOrAbsolute);
transferRequest.DownloadLocation = downloadUri;
transferRequest.Tag = downloadFileName;
try
{
BackgroundTransferService.Add(transferRequest);
}
catch
{
return;
}
}
private void cancel_click(object sender, System.Windows.RoutedEventArgs e)
{
if(transferRequest != null)
removeRequest(transferRequest.RequestId);
}
void transfer_TransferProgressChanged(object sender, BackgroundTransferEventArgs e)
{
}
void transfer_TransferStatusChanged(object sender, BackgroundTransferEventArgs e)
{
BackgroundTransferRequest transfer = e.Request;
switch (transfer.TransferStatus)
{
case TransferStatus.Completed:
{
if (transfer.StatusCode == 200 || transfer.StatusCode == 206)
{
removeRequest(transfer.RequestId);
}
else
{
removeRequest(transfer.RequestId);
if (transfer.TransferError != null)
{
System.Diagnostics.Debug.WriteLine("失败:"+transfer.TransferError);
}
}
}
break;
case TransferStatus.WaitingForExternalPower:
{
System.Diagnostics.Debug.WriteLine("电力不足,不能启动");
}
break;
case TransferStatus.WaitingForExternalPowerDueToBatterySaverMode:
{
System.Diagnostics.Debug.WriteLine("省电模式,不能启动");
}
break;
case TransferStatus.WaitingForNonVoiceBlockingNetwork:
{
System.Diagnostics.Debug.WriteLine("等待网络");
}
break;
case TransferStatus.WaitingForWiFi:
{
System.Diagnostics.Debug.WriteLine("等待wifi网络");
}
break;
}
}
void removeRequest(string id)
{
BackgroundTransferRequest request = BackgroundTransferService.Find(id);
if (request != null)
{
BackgroundTransferService.Remove(request);
}
}
}
}
MainPage.xaml
<phone:PhoneApplicationPage
x:Class="wp8BackgroundTransfer.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
shell:SystemTray.IsVisible="True">
<!--LayoutRoot 是包含所有页面内容的根网格-->
<Grid x:Name="LayoutRoot" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel Orientation="Vertical">
<Button Content="download" Width="300" Height="100" Click="download_click"></Button>
<Button Content="cancel" Width="300" Height="100" Click="cancel_click"></Button>
</StackPanel>
</Grid>
</phone:PhoneApplicationPage>
发表评论
-
wp win8开发:scrollview滑动动画效果
2017-01-10 17:07 461产品需求,暂别ios开发,着手win8开发。 说说这个scr ... -
wp wp8:自定义Button图片背景
2017-01-10 17:11 333自定义一个返回按钮,以下是我的操作。 内容部分也是在网上 ... -
wp wp8:指定通信资源(端口)已由另一个应用程序使用 错误
2017-01-10 17:06 411测试机器是820t时,一直正常运行,后来改用920t的时候安装 ... -
wp wp8:自定义控件 自定义progressbar
2017-01-11 13:31 348MProgress.cs using System; usi ... -
wp wp8:服务器推送
2017-01-11 13:32 427前提:必须使用真机,真机注册 服务器端使用的是winform ... -
wp wp8:lbs
2017-01-12 10:51 448上码:不解释 using System; using Sys ... -
wp wp8:计划通知
2017-01-10 17:06 406using System; using System.Coll ... -
wp wp8:后台任务
2017-01-10 17:10 394MScheduledTaskAgent项目下 Schedule ... -
wp wp8:页面转换 page transitions
2017-01-12 10:47 526首先导入Toolkit.dll文件 将App.xaml.cs ... -
wp wp8:公共样式定义
2017-02-07 10:12 477在Resources下创建一个名称为buttonStyle.x ... -
wp wp8:自定义dll库创建
2017-01-11 13:28 491鉴于项目测试: 创建一个wp8项目 在解决方案下 右键 操 ... -
wp wp8:sqlite安装
2017-01-12 10:47 467打开vs 检测一下时候安装了sqlite for window ... -
wp wp8:手势GuestureService/GuestureListener
2017-01-12 10:51 5581.利用Silverlight Tookit中提供的手势服务监 ... -
wp wp8&win8:Stretch的Uniform和UniformToFill
2017-01-12 10:51 586Uniform,控件的高度和宽度会增加直到达到了容器的大小,也 ...
相关推荐
3. **BackgroundTransferService(后台传输服务)** - **网络数据传输**:`BackgroundTransferService`是WP7中用于后台下载和上传的API,即使应用不在前台运行,也能处理HTTP请求。 - **创建DownloadOperation/...
6. **主题安装**:在WordPress中,用户可以通过FTP工具将主题文件夹上传到wp-content/themes目录,或者通过WordPress后台的“外观”>“主题”进行上传安装。 7. **激活主题**:安装完主题后,用户需在WordPress后台...
微软在WP8中提供了专门的VOIP API,让开发者能够构建具有后台通话能力的应用。这些API包括启动和停止VoIP呼叫、管理通话状态、处理来电通知等功能,允许应用在后台运行,即使用户离开了应用界面,也能接收到呼叫。 ...
**SMTP (Simple Mail Transfer Protocol)** 是互联网上用于发送电子邮件的标准协议,通过使用wp-mail-smtp插件,网站可以利用SMTP服务器进行邮件传输,提高邮件送达率。 安装和配置wp-mail-smtp插件是提升WordPress...
对于WordPress的自动加载功能,WP Rocket能智能地进行优化,避免无效的后台查询。 多语言支持是WP Rocket的一大亮点,它包括中文在内的多种语言,方便全球各地的用户使用。而且,该插件易于配置,无需深入了解技术...
"wp支付宝插件"正是为实现这一目标而设计的,它使WordPress网站能够无缝对接支付宝服务,提升用户体验,同时也简化了后台的财务管理。 **一、WordPress支付宝插件的功能** 1. **在线支付集成**:通过这个插件,...
1. **安装**:下载WP Rocket 2.11.5版本后,将`wp-rocket`文件上传至WordPress的`wp-content/plugins`目录,然后在WordPress后台激活插件。 2. **配置**:激活后,进入“WP Rocket”设置页面,按照引导进行简单配置...
4. **数据绑定**:理解如何将UI元素与后台数据模型绑定,实现动态更新和数据驱动的界面。 5. **动画和视觉效果**:掌握如何为应用添加过渡效果和动画,提升用户体验。 6. **多分辨率支持**:WP7设备有多种屏幕分辨率...
在压缩包文件名称列表中只有一个名为"WP2WP"的文件,这可能是插件的安装文件,用户需要将此文件上传至WordPress的"wp-content/plugins"目录,然后通过WordPress后台激活插件。当然,这仅是推测,具体操作可能需要...
在这个教程中,我们将深入探讨Windows Phone 7的后台传输服务以及如何构建一个简单的下载器应用。 BackgroundTransferService是Windows Phone SDK提供的一种服务,允许开发者创建在后台运行的下载任务,即使用户...
WP-Rocket的安装非常简单,只需将解压后的“wp-rocket”文件上传到WordPress的“plugins”目录,然后在WordPress后台激活插件即可。一旦激活,大部分优化功能会自动启用,无需额外设置。对于更高级的优化,用户可以...
也可以将解压后的`wp-china-yes`文件夹上传至`wp-content/plugins`目录,然后在后台激活。 2. **配置**:激活后,在WordPress的插件设置页面,可以配置CDN服务商(如阿里云、腾讯云等)、开启或关闭各项优化功能,...
相比于传统的数据库导出导入、FTP文件传输等方式,All-in-One WP Migration及其Multisite Extension提供了一键式解决方案,减少了手动操作的繁琐。它支持更大的文件大小,对于大型网站尤其适用,并且可以在不中断...
2. **客户端设计**:在WP7客户端,开发者需要创建一个用户界面,包括视频播放控件,以及用于连接服务器和接收数据的后台逻辑。Silverlight提供了一套丰富的UI元素和动画效果,使得在WP7上构建交互性良好的应用成为...
6. **插件安装与配置**:要使用此插件,用户需要首先在WordPress后台安装并激活,然后配置腾讯云COS的相关凭证,包括AppID、Secret ID和Secret Key。完成配置后,插件将自动开始工作。 7. **安全与维护**:虽然插件...
1. Wordpress后台登录问题:文件标题“Wordpress后台登录不跳转.pdf”提示我们,这篇文档可能涉及到Wordpress后台登录功能故障的问题,即用户在输入正确的登录凭证后,系统没有按预期跳转到后台管理页面。...
3. **CDN(内容分发网络)**:Cloudflare或MaxCDN等服务可以将网站内容分布在全球各地的服务器上,使得用户可以从最近的节点获取数据,显著降低延迟,提高加载速度。 4. **图像优化**:优化图片大小和格式是提升...
2. **安装步骤**:将解压后的`wp-pagenavi`文件夹上传到WordPress网站的`wp-content/plugins`目录下,然后在WordPress后台的“插件”页面激活该插件。 3. **配置**:激活后,你可以在WordPress的设置菜单中找到WP-...
在WordPress管理后台,用户可以找到`wp-open-social`插件并进行安装。安装后,管理员需要配置各个社交平台的应用ID和应用密钥,这些信息通常在对应的开发者平台上申请获得。配置完成后,插件就会在登录界面显示相应...
在这个案例中,"wp-webdav-media-main"很可能是wp-webdav-media插件的核心代码,负责连接WebDAV服务器,处理与NextCloud的通信,并提供WordPress后台的配置界面。 总结来说,"wp-webdav-media"插件利用WebDAV协议,...