未找到

未发布 【FAQ合集】TWAIN扫描识别工具Dynamic Web TWAIN的编程代码问题
by Harriet666 keys 分享 1510217364852
Dynamic Web TWAIN中文介绍免费下载资源教程示例DEMO
Dynamsoft

1.如何获取黑白图像?

DWObject.OpenSource();
DWObject.IfShowUI = false;
DWObject.IfDisableSourceAfterAcquire = true;
DWObject.PixelType = EnumDWT_PixelType.TWPT_BW; //Black - White 
image : EnumDWT_PixelType.TWPT_BW, GRAY image: 
EnumDWT_PixelType.TWPT_GRAY, RGB 
image: EnumDWT_PixelType.TWPT_RGB
DWObject.AcquireImage();

2.如何在没有用户界面的情况下运行?

function BeginScan(){
    DWObject.OpenSource();
    DWObject.IfShowUI = false; //set without user interface
    DWObject.IfDisableSourceAfterAcquire = true;

    DWObject.AcquireImage();
}

function DWObject_OnPostTransfer(){
    DWObject.SaveAsBMP("C:\\temp.bmp",0);
}

3.如何只扫描纸张的某一部分?

DWObject.SelectSource();
DWObject.OpenSource();
DWObject.IfShowUI = false;
//Set Image Layout
DWObject.Unit = EnumDWT_UnitType.TWUN_INCHES;
DWObject.SetImageLayout(0, 0, 5, 5);
DWObject.AcquireImage(); 

4.如何在不显示设备选择对话框的情况下选择设备?

DWObject.OpenSourceManager();

for(i = 0, i<=DWObject.SourceCount - 1,i++){
    if (DWObject.GetSourceNameItems(i) == "Specified device name")
        DWObject.SelectSourceByIndex (i);
}

//if can't find the specified source, it'll select default source
DWObject.AcquireImage(); 

5.如何在不使用UI获取图像时禁用进度指示器对话框?

DWObject.IfShowUI = false;
DWObject.IfDisableSourceAfterAcquire = true;
DWObject.OpenSource();
DWObject.IfShowIndicator = false;
DWObject.AcquireImage();

6.如何分别设置水平和垂直分辨率?

DWObject.SelectSource();
DWObject.OpenSource();

//Set XRESOLUTION current value.
DWObject.Capability = 0x1118; //ICAP_XRESOLUTION
DWObject.CapType = 5; //TWON_ONEVALUE
DWObject.CapValue = 300;
if (DWObject.CapSet == false){
    alert( "Failed to set the x-resolution. " + DWObject.ErrorString);
}

//Set YRESOLUTION current value.
DWObject.Capability = 0x1119; //ICAP_YRESOLUTION
DWObject.CapType = 5; //TWON_ONEVALUE
DWObject.CapValue = 200;
if (DWObject.CapSet == false){
   alert( "Failed to set the y-resolution." + DWObject.ErrorString);
}

DWObject.AcquireImage();

7.如何上传到Web服务器?

DWObject = document.getElementById("dwtcontrolContainer");
//dwtcontrolContainer is the id of the Dynamic Web TWAIN on the page (An object or an embed).
function btnScan_onclick() 
{
DWObject.SelectSource();
DWObject.OpenSource();
DWObject.AcquireImage();
}
function btnUpload_onclick() 
{
var strActionPage;
var strHostIP;
var CurrentPathName = unescape(location.pathname); // get current PathName in 
plain ASCII 
var CurrentPath = CurrentPathName.substring(0, CurrentPathName.lastIndexOf("/") 
+ 1); 
strActionPage = CurrentPath + "SaveToFile.aspx"; //the ActionPage's file path
strHostIP = "localhost"; //The host's IP or name 
DWObject.HTTPPort = 80; 
DWObject.HTTPUploadThroughPost(strHostIP,0,strActionPage,"imageData.tif");
if (DWObject.ErrorCode != 0)
alert(DWObject.ErrorString);
else //succeed
alert("Image Uploaded successfully");
}

8.如何使用ADF?希望将每个文档保存在一个单独的文件中。

var iDocumentCounter =0;

function BeginScan(){
    DWObject.OpenSource();

    DWObject.IfShowUI = false;
    DWObject.IfDisableSourceAfterAcquire = true;
    if(DWObject.Duplex != TWDX_NONE)
        DWObject.IfDuplexEnabled = true; //enable duplex

DWObject.IfFeederEnabled = true;
    if (DWObject.IfFeederEnabled == true){
         DWObject.XferCount = -1;

         if(DWObject.IfFeederLoaded == True)
             DWObject.AcquireImage();
    }
}

function DWObject_OnPosttransfer(){
iDocumentCounter = iDocumentCounter + 1;

if(DWObject.SaveAsBMP("C:\\Image\\" + iDocumentCounter + ".bmp", 0) == false)
    alert( DWObject.ErrorString);
}

9.我如何使用SSL?

您可以使用IfSSL属性。下面的JavaScript示例将显示如何使用IfSSL属性。
function btnUpload_onclick() 
{
   DWObject.HTTPPort = 80; 
   DWObject.IfSSL = false; // if 80 is the port number of 
non-secure port

   /* 
   DWObject.HTTPPort = 443; 
   DWObject.IfSSL = true; // if 443 is the port number of secure 
port
   */

   DWObject.HTTPUploadThroughPost("127.0.0.1", 0, 
"/SaveToFile.php", "imageData.jpg");

   if (DWObject.ErrorCode != 0)
      alert(DWObject.ErrorString);
   else //succeed
     alert("Successful");
}

10.如何将新扫描的图像添加到现有的多页TIFF文件中?

function Scan_Click(){
   DWObject.AcquireImage();
}
function DWObject_OnPostTransfer(){
   DWObject.CloseSource();
   DWObject.IfTiffMultiPage = true;
   DWObject.SaveAsTIFF("SaveAsTIFF.tif", 0);
   if (DWObject.ErrorCode != 0)
      alert (DWObject.ErrorString);
   else //succeed
      alert ("Successful");
}

11.如何在保存之前旋转图像?

您可以使用RotateLeft方法和RotateRight方法。

12.如果缓冲区中有多个图像,如何查看指定的图像?

您可以通过更新API CurrentImageIndexInBuffer的值来查看指定的图像或浏览缓冲区中的所有图像。
function NextImage_Click(){
   if (DWObject.HowManyImagesInBuffer == 0) 
   
      alert ("There is no image in buffer");

   DWObject.CurrentImageIndexInBuffer += 1;
}

13.如何进行双面扫描?
function DuplexScan_Click(){
   DWObject.SelectSource();
   DWObject.OpenSource();
   DWObject.IfShowUI = false;
   DWObject.IfDuplexEnabled = true; //enable duplex
   DWObject.AcquireImage();
} 

14.如何以反转颜色扫描图像?

您可以使用PixelFlavor属性。

2017慧都十四周年狂欢搞事情!砸金蛋100%抽现金红包、满额豪送iPhone X、iPhone 8、DevExpress汉化免费送、团队升级培训套包劲省10万元......更多惊喜等您来探索!

未发布 扫描识别工具Dynamic Web TWAIN使用教程:属性/方法/事件介绍
by Harriet666 keys 分享 1511947096620
Dynamic Web TWAIN是一个专为Web应用程序设计的TWAIN扫描识别控件。你只需在TWAIN接口写几行代码,就可以用兼容TWAIN的扫描仪扫描文档或从数码相机/采集卡中获取图像。
本文为你介绍Dynamic Web TWAIN中属性/方法/事件的具体操作代码,欢迎收藏。
 
Dynamic Web TWAIN最新版免费下载>>>
 
当正确实施后,Dynamic Web TWAIN将在页面加载后自动初始化。一旦初始化,你就可以像堆任何正常的JS对象一样控制它。您可以参考我们的在线API文档来查看Dynamic Web TWAIN的所有内置属性、方法和事件。
 
这里有三种使用Dynamic Web TWAIN的方法:

属性

属性用于在运行时从Dynamic Web TWAIN中获取或设置特定的值,例如Resolution、Duplex、IfShowUI等。
1
2
3
/* Property */
/* Scan pages in 200 DPI */
DWObject.Resolution = 200;

方法

方法用于调用Dynamic Web TWAIN对象的内置函数,如AcquireImage、SaveAsJPEG、Rotate等。语法非常简单:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Method
   
///
<summary> /// Rotates the image of a specified index in buffer by a specified angle.
  /// </summary>
///
<param name="sImageIndex" type="short" data-filtered="filtered">
specifies the index of image in buffer. The index is 0-based.
 
///
<param name="fAngle" type="float" data-filtered="filtered">
specifies the angle.
///
<param name="bKeepSize" type="bool" data-filtered="filtered">
specifies whether to keep the original size
///
<returns type="bool" data-filtered="filtered"></returns>
DWObject.Rotate(0, 45, false); // rotate the 1st image in the buffer by 45 degrees

事件

当达到某个触发点时触发事件。例如,OnMouseClick鼠标点击事件等。与属性和方法相比,事件是有点难度的。在这里我们再多谈一下。
 
处理事件
添加一个事件监听器
 
要添加事件监听器,可以使用内置方法RegisterEvent。请参考下面的示例代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
<script type="text/javascript" data-filtered="filtered">
Dynamsoft.WebTwainEnv.RegisterEvent('OnWebTwainReady', Dynamsoft_OnReady);
var DWObject;
/* OnWebTwainReady event fires as soon as Dynamic Web TWAIN is initialized and ready to be used. It is the best place to add event listeners */
function Dynamsoft_OnReady() {
   DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer');
   DWObject.RegisterEvent("OnPostTransfer", Dynamsoft_OnPostTransfer);
}
function Dynamsoft_OnPostTransfer() {
   /* This event OnPostTransfer will be triggered after a transfer ends. */
   /* your code goes here*/
}
</script>
 
在上面的代码中,我们添加了JavaScript函数Dynamsoft_OnPostTransfer()作为事件OnPostTransfer的事件监听器。另外,你可以写这样的代码:
1
2
3
4
5
6
7
8
9
10
<script type="text/javascript" data-filtered="filtered">
Dynamsoft.WebTwainEnv.RegisterEvent('OnWebTwainReady', Dynamsoft_OnReady);
var DWObject;
function Dynamsoft_OnReady() {
   DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer');
   DWObject.RegisterEvent("OnPostTransfer", function() {
    /* your code goes here*/
   });
}
</script>
 
有参数的事件
一些事件具有参数。以OnMouseClick事件为例:
1
2
/* sImageIndex is the index of the image you clicked on*/
OnMouseClick(short sImageIndex)
 
当您创建相应的JavaScript函数(AKA,事件侦听器)时,可以包含参数并在运行时进行检索。
1
2
3
function DynamicWebTwain_OnMouseClick(index) {
    CurrentImage.value = index + 1;
}

或者
1
2
3
DWObject.RegisterEvent("OnPostTransfer", function(index) {
    CurrentImage.value = index + 1;
});
 
特殊事件 -“OnWebTwainReady”
在所有的内置事件中,有一个特殊事件“OnWebTwainReady”。基本上这个事件在Dynamic Web TWAIN对象被初始化并准备好使用的时候触发。正如您在本文前面看到的那样,推荐使用它的方法是:
1
2
3
4
5
6
7
<script type="text/javascript" data-filtered="filtered">
Dynamsoft.WebTwainEnv.RegisterEvent('OnWebTwainReady', Dynamsoft_OnReady);
var DWObject;
function Dynamsoft_OnReady() {
   DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer');
}
</script>

或者
1
2
3
4
5
<script type="text/javascript" data-filtered="filtered">
   Dynamsoft.WebTwainEnv.RegisterEvent('OnWebTwainReady', function() {
     DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer');
   });
</script>

本次教程到此结束,希望能对Dynamic Web TWAIN的用户带来帮助,接下来还会有更多的相关教程,敬请期待!

未发布 2017年四大网络安全趋势
by Harriet666 keys 分享 1501573895591
网络攻击在2016年创下了纪录,在2017年网络环境将更加危险。以下是2017年网络安全的4个趋势。

不断变化的勒索软件

随着越来越多的数据存储在移动设备上,勒索软件在网络犯罪分子中非常受欢迎。这是一个有利可图的加密内容的漏洞,除非支付赎金,否则无法恢复。现在勒索软件越来越复杂,并且定位到任何设备。在夏季DEFCON会议上,Pen Test Partners的研究人员证明了攻击者如何控制互联网连接的恒温器并进行锁定,直到受害者接受赎金要求为止。
另一个新的趋势:网络犯罪分子目标通常是高管和其他有权力的人,他们更有可能为保护有价值的公司或个人信息而付款。

物联网IoT

数十亿新的物联网设备正在连接到企业网络。但考虑到很多不安全因素,大量使用只会增加黑客目标的数量。去年十月的Dyn攻击显示网络犯罪分子操纵物联网造成严重破坏是多么容易。特别令人不安的是,黑客将恶意软件部署到使用 IoT设备的机器人上进行DDoS攻击。他们还为模仿者创建了一个攻击模板。网络犯罪分子可以很容易地获取未来的源代码和其他攻击工具推出自己的僵尸网络。

移动安全威胁无处不在

大约4%的移动设备被恶意软件感染,而大约一半的移动设备受到暴露企业数据的高风险。员工仍然忽视公司协议,并将未经授权的移动应用程序下载到用于连接到企业网络的设备上。应用商店有时也会被流氓开发人员欺骗,他们创建恶意的开发环境,将恶意软件隐藏在表面上看起来安全的应用中。底线:随着越来越多的员工通过移动设备访问公司据,他们将注定要在2017年成为网络犯罪分子的更大目标。

政治黑客走向主流

国家定期进行cyberespionion,但国家赞助的网络攻击并不局限于工业间谍活动。“民主党全国大会”黑客提供了一个教科书的例子,说明团体如何代表国家赞助者采取行动,使用被盗的材料传播虚假信息,播种不和或传播宣传,以推动其政治目标。即使那些不直接参与政治的企业也需要更新威胁评估。威胁不再仅仅来自民族国家。安全从业人员还需要抵御各种使用网络攻击推动事业或推进议程的政治黑社会主义者所构成的威胁。
未发布 Edraw Max(亿图图示)教程:如何自定义组织结构图展示的信息
by Harriet666 keys 分享 1499850237522
在我们的日常工作中,或多或少的需要绘制一些图表,可能是某个会议的流程图,也有可能是公司的组织结构图等等,然而绘制这么多的图表,仅靠Word、PPT似乎已经越来越无法满足我们的需求了。Edraw Max(亿图图示)的出现,就是为了更好地满足我们不断提示的需求。
 
本文就给大家介绍 一下,在使用Edraw Max(亿图图示)绘制企业组织结构图的时候,应该如何完美的展现各种信息!目前Edraw Max(亿图图示)在线订购享75折优惠活动正在进行中,欢迎您下载、购买进行运用!
 
Edraw Max(亿图图示)V8.7中文版点击下载>>>
 

1、自定义组织结构图字段

只需点击“组织结构图”菜单的“定义域”按钮,在形状数据对话框中,就可以定义员工图形的数据域。而且这项调整将会作用于表中所有形状,所有数据也都可以导出为 excel 表格形式。
如果默认的属性中没有你所需要的,还可以通过“定义属性”添加新的属性。


2、显示选项

点击“组织结构图”菜单中的“显示选项”按钮,即可在显示对话框中,自定义显示的数据,照片、尺寸,显示顺序,字体样式和形状大小。“显示选项”左下角可选择应用的范围,可根据需求自由选择。
未发布 【315style】VMProtect正版授权低至6.9折,折后再享第二套半价!
by Harriet666 keys 分享 1521622003370
在3.15国际消费者权益保护日到来之际,慧都科技联合全球知名厂商VMPsoft特别推出“VMProtect正版授权超低折扣”的促销活动,活动期间,VMProtect授权低至6.9折,折后再享第二套半价!
 
活动时间:即日起至2018.4.15
 
用户在购买同一版本的平台授权时,既可在原有折扣基础上享受第二套半价的优惠。
 
如:用户购买 Ultimate Edition Personal License for Windows平台 + for OS X平台
      最终购买价为:3742+3742/2=5613元
 
VMProtect是一款虚拟机保护软件,是目前最为流行的保护壳之一。VMProtect将保护后的代码放到虚拟机中运行,这将使分析反编译后的代码和破解变得极为困难。除了代码保护,VMProtect还可以生成和验证序列号,设置过期时间,限制免费更新等等。
 
郑重承诺:慧都所售产品均为厂商授权的正版产品,在线订购安全便捷,请完全放心!
未发布 jQuery JavaScript的综合性UI组件库jQWidgets更新至v5.0.0丨附下载
by Harriet666 keys 分享 1502444658573
jQWidgets是一个基于jQuery JavaScript的综合性和创新性的HTML5 UI组件库,旨在帮助开发者创建专业、跨平台的Web应用程序,并最大限度的节省开发时间。jQWidgets包含30多种UI组件,是最快的JavaScript UI框架之一。

【最新版jQWidgets v5.0.0点击下载>>>】

jQWidgets v5.0.0更新内容:
新增:
  • 自定义元素
修复:
  • 修复了jqxTooltip中关于open方法与refresh方法相结合的问题。CSS类被多次添加。
  • 修复了jqxDataTable中有关确保行可见键的问题。
  • 修复了jqxButtonGroup中关于百分比大小的问题。
  • 修复了jqxButton中当定义图像时关于动态设置值属性的问题。
  • 修复了jqxDropDownList中关于UL列表初始化的的问题。
  • 修复了jqxMenu中关于closeItem方法行为的问题。

未发布 文档管理控件Xshell 发布v6 Beta版本,引入会话管理器面板丨附下载
by Harriet666 keys 分享 1510818449798
Xshell是一个功能强大的终端模拟器,支持SSH、SFTP、TELNET、RLOGIN和SERIAL。它提供业界领先无法替代的性能和特性集。它有许多对企业用户有用的特性,包括:分页式环境、动态端口转发、自定义键映射、用户定义按钮、VB脚本以及显示2字节字符和支持国际语言的UNICODE终端。
 
Xshell v6 Beta最新版下载>>>
 
Xshell v6 Beta更新内容:

会话管理器

在版本6中,我们对Xshell的界面做了一些直观的改变。最大的改变是引入了会话管理器面板,用户可以轻松创建、编辑和删除会话文件。现在,会话管理的所有方面以及同时启动多个会话的功能都可以通过会话管理器在Xshell中访问。
 

可停靠的UI

会话管理器窗口、编辑窗口和其他窗扣可以停靠在Xshell的主窗口中。这为Xshell的可定制配置提供了更多的功能。用户可以简单地拖放窗口。
 

支持SSH PKCS#11

PKCS#11协议使用户能够使用硬件令牌(HSM)安全地存储私钥,以提高安全性。
 

主题选择

您现在可以根据需要选择Xshell的颜色和整体主题。
 

编辑窗口

以前,Xshell只能使用编辑栏向终端发送一行准备好的字符。Xshell 6引入了组合窗口,使用户能够准备多行脚本或字符串,并同时将其传送到当前会话或多个会话中。
 

突出显示

Xshell 6允许用户使用自定义的文本和背景颜色来区分终端的字符串输出。用户可以轻松地管理他们想要突出显示的关键字,也可以创建分组,以便在特定情况下使用设置的关键字。
 

ASCII和非ASCII(中文,韩文等)字符的独立字体集成

通常,在某些窗口中,即使使用相同的字体,ASCII字符和非ASCII字符的大小也可能不同。在Xshell 6中,用户可以为不同的语言指定不同的字体,从而获得更加一致和稳定的终端输出。
 

在网上搜索所选文本

任何在Xshell 6终端中选择的字符串都可以通过用户定义的搜索引擎立即在网上搜索。
 

各种铃声/闹铃选项

当监视远程服务器时,用户设置警报以通知他们任何改变、错误等。仅使用基于字符串的警报可能不足以吸引用户。Xshell 6的铃声选项提供了各种声音和屏幕效果,以确保用户可以及时得到提醒。
 

稳定性和性能增强工具

我们增强了跟踪消息的功能,并添加了更多的日志记录选项以便用户可以更高效地识别和诊断连接问题。

试用、下载、了解更多产品信息请点击"咨询在线客服"  

未发布 Visual Studio2017 15.4提供预览版,面向Windows 10秋季更新(FCU)
by Harriet666 keys 分享 1504518418665
鉴于Visual Studio 15.3现已发布(一并给出了些许更新),Microsoft已将注意力转向近期宣布的VS2017 15.4版本。15.4目前处于预览状态,该版本所关注的是添加对即将发布的Windows 10 FCU(Fall Creators Update)的支持,FCU已确定将在2017年秋季发布。尽管15.4预览版本现已对所有感兴趣的用户可下载,但是要使用FCU的特定特性,还需要成为Windows测试人员(Insider),并下载相应的Windows 10 SDK。

当前VS2017的稳定版本是15.3.x,其中包括对.NET Core 2的支持,但是UWP应用依然要支持.NET Standard 2。在15.4版中对此加以了改进,允许针对FCU和.NET Standard 2的UWP应用开发,这将提升代码重用,并简化开发人员编写支持跨多平台(Mono、Xamarin、.NET Framework、.NET Core等)的软件库。

鉴于15.4当前只是预览版,应该注意的是该构建版本存在一个严重的已知问题(Know Issue),即对UWP应用禁用了XAML Designer,这是Windows 10 FCU至少应该解决的一个问题。正如前面所介绍的,非XAML的UWP应用可以遵循.NET Standard 2.0,但是要完全支持使用了XAML的UWP应用还需假以时日。

那些有考虑编写面向Windows用户应用的开发人员,将会受益于新添加的“Windows Application Packaging Project”模板。该模板提供了添加已有Windows项目和软件包到appx容器中的功能,这样就可以提交到Windows Store等发布途径中。被打包的应用不必是UWP应用。该模板并不需要目标平台运行Windows 10,为开发人员提供了一种更易于发布他们应用的方式,不再依赖于传统的Win32风格安装程序。


非Windows 10的特定添加特性

该版本中改进了Xamarin Tools for Visual Studio,其中包括对Xamarin Live Player的支持,使得开发人员可以使用VS2017和移动设备快速地构建应用原型。一旦Player安装在Apple或Android设备上,它将从运行VS2017的工作站屏幕上读取QR代码,提供了一种无需先期部署到App Store就可在移动设备上实际开发和测试代码的快速方法。

先前独立提供的Power Tool工具“Control Click Go To Definition”,现在已经集成到VS2017中。该特性目前支持C#、VB和Python。在使用时,只需将鼠标悬停在IDE中的任意一行代码上,并同时按住CTRL键,就可以轻易地查看到相关定义。

15.4版本和预览版一样,并未得到可用于“上线”系统的许可,也不能应用于生产环境。VS2017预览版的安装可以与VS2017生产系统并存,但是这样做依然存在着风险,也许在关键业务环境中不应该这样做。该预览版的完整发行说明已经给出,如果用户不确定是否应在本地机器上安装该预览版时,可寻求咨询。
未发布 图表编辑器TMS Diagram Studio更新至v4.14,支持RAD Studio 10.2 Tokyo
by Harriet666 keys 分享 1508403820628

TMS Diagram Studio是一款功能强大的图表控件,专为您的应用程序添加示意图和流程图表。

TMS Diagram Studio点击下载>>>


v4.14
  • 改进:更改handle检测的顺序。
  • 修复:预览/打印错误。
  • 修复:TDiagramButtons控件显示所有类别,而不考虑DiagramCategories属性的值。
v4.13
  • 新增:支持RAD Studio 10.2 Tokyo
v4.12
  • 修复:RoundRect块在使用GDI或GDIPlus/Direct2D时显示不同
  • 修复:使用Direct2D导出到位图不包含背景图像
V4.11
  • 修复:链接不与块一起移动
v4.10
  • 新增:TCustomDiagramBlock.CornerRadius属性,用于在使用圆弧形状时对圆角进行微调
  • 改进:在一次性清除或删除许多图表对象时提高性能
  • 修复:预览位图横向定位
  • 修复:移动具有线路的组将导致组成员错位
  • 修复:图形工具栏在设计时的高度不正确
v4.9.1
  • 修复:C ++ Builder 2007标题未正确生成。

未发布 Xamarin for Visual Studio v4.6发布,重新设计属性页和Manifest编辑器
by Harriet666 keys 分享 1500624306471
Xamarin for Visual Studio 让开发者可以在Windows上用 Visual Studio 开发原生 iOS, Android 和Windows应用程序。Xamarin for Visual Studio提供了流畅的iOS和Android的API查询,让开发者专注于应用本身。更棒的是,开发者完全可以利用一切他熟悉的开发工具进行开发,从而保证项目的高效性和持续性。

Xamarin for Visual Studio点击下载>>>

V4.6版本中包含的功能:


属性页和Manifest重新设计

在Xamarin 4.6中,我们重新设计了属性页和Manifest编辑器的重新设计,添加了一个新的编辑器:授权编辑器。

新的授权编辑器

新的编辑器现在是一个独立的编辑器。它的设计方式更加简单有效,双击你的entitlements.plist文件来启动。它的UI非常友好,用户可以轻松浏览和运用。

Bug修复

此版本包括以下问题修复:
  • iOS设备列表模拟器在更改iOS版本时不会更新。(4.6.0.289)
  • 修复VS在创建主机发现时挂起Zeroconf的问题。(4.6.0.289)
  • SayGoodbye目标在创建iOS库时失败。(4.6.0.279)
  • MSBuild过程由于XMA监控而产生较高的CPU使用率。(4.6.0.279)
  • 在某些情况下重新连接后,Mac Agent图标不会更新。(4.6.0.279)
  • 在设置中无法手动选择Xcode路径。(4.6.0.279)
  • Android存档 - 向用户发出关于所需的密钥库备份的信息,并有助于将其复制到其他位置。(4.6.0.279)
  • 无法在Visual Studio 2017中打开名为“资产”的目录。(4.6.0.279)
  • VS不会在新的iOS项目的.plist文件中设置MinimumOSVersion键。(4.6.0.279)
  • “链接器行为”下拉列表显示MtouchLink属性的“Don't Lin”默认值不正确。(4.6.0.279)
  • 在Mac Server连接对话框上显示Xamarin.iOS兼容性错误。(4.6.0.279)
  • 未选择数据源类时,不会禁用支持的系列和并发组。(4.6.0.279)
  • 更改连接流程,以便在打开解决方案自动连接时不显示任何对话框。(4.6.0.279)
  • 将UWP项目设置为启动项目时,设置正确的配置平台。(4.6.0.279)
  • tvOS绑定项目创建失败并出现多个错误。(4.6.0.279)
  • 在某些情况下,Visual Studio挂起ZeroConf (4.6.0.279)
  • 由于XMA上的进程监视器不正确,MSBuild进程会产生高CPU使用率。(4.6.0.240)
  • 建立iOS库时,SayGoobye目标失败。(4.6.0.240)
  • 本地静态参考(.a)源文件在构建后最终以0 Kb为单位。(4.6.0.240)
  • Android属性页面上的打字错误。(4.6.0.240)
  • F#Android项目无法构建。(4.6.0.240)
  • 关于部署WatchOS应用程序的System.IO.FileNotFoundException异常。(4.6.0.240)
  • 几个连接可靠性Mac代理修复。(4.6.0.240)
  • Android Library模板包含资源文件。(4.6.0.240)
  • Android项目模板不会生成mipmap图标。(4.6.0.240)
  • 无法在调试模式下解除tvOS扩展应用[电视服务扩展]。设备下拉菜单中没有tvOS模拟器。(4.6.0.240)
  • Visual Studio崩溃,试图启动没有运行的Android应用程序。(4.6.0.240)
  • 将默认模式下的watchOS设置为默认模拟器。(4.6.0.240)

已知的问题

创建会因错误取消:Project'project_name '需要在你的计算机上安装以下组件:...
构建Android应用程序可能需要安装其他组件。这几种情况下可能需要,例如使用新组件、NuGet软件包,或者是你在计算机上构建的第一个Xamarin.Forms解决方案。
Xamarin for Visual Studio检测到资源的缺失,并显示错误信息,要求下载并安装它们:
双击列表中的错误,开始下载并安装缺少的组件。
请记住,你需要在列表中看到Intellisense错误。
如果你尝试在解决方案中创建任何项目,而不安装缺少的组件,那么创建将被取消。
安装缺少组件的可选方法是从命令行中创建。

其他已知问题

如果你在使用此版本后降级为Xamarin 4.2或更低版本,则需要在Mac Server对话框中重新注册已知的Mac服务器。请使用“忘记Mac”选项,并再次配置服务器连接。

试用、下载、了解更多产品信息请点击"咨询在线客服"  


 近期热门 - 点击最多
  1. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  2. Node.js 打印vite react+go项目目录树
  3. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  4. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  5. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  6. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  7. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  8. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  9. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  10. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法

  全端社区 - 最新回复
  1. 在无管理员权限的情况下,使用安装Python补全 pip临时配置环境变量
  2. Python鉴权方法:Depends 依赖注入;装饰器;与基于Proxy模式的Session状态管理自动计算脏属性;将用户数据存储在Redis中
  3. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  4. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  5. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  6. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  7. Node.js 打印vite react+go项目目录树
  8. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  9. Windows与Mac通过git ssh和rsync实现文件共享互传
  10. Windows与Mac通过git ssh和scp实现文件共享互传

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA