我正在尝试打开一个URL,该URL将启动从Windows Phone 7 PhoneGap应用程序中的服务器下载文件。
我在config.xml中启用了InAppBrowser插件,如下所示,并在服务器端添加了相关代码(我希望在系统浏览器中打开URL)
var ref = window.open('http://www.xyz.com/download.aspx','_ system');
但是当我试图打开它时,会抛出以下异常(从输出窗口)
System.dll
中出现'System.UriFormatException'类型的第一次机会异常错误:“语法错误,无法识别的表达式:[data-role ='footer'] #sfdmfdOptionsNavbar li a#file:http://www.xyz.com/js/jquery/SmartphoneJquery/jquery-2.0.0.js Line:1612”
线程''(0xfc108e2)退出时代码为0(0x0)。
mscorlib.dll中出现'System.Reflection.TargetInvocationException'类型的第一次机会异常
错误:ProcessCommand :: TargetInvocationException中的异常
错误:无法在Object :: InAppBrowser上打开InvokeMethodNamed :: open
线程''(0xaa5031a)已退出代码0(0x0)。 AppClosing
注意:我已将原始IP更改为xyz.com以用于说明目的。原始ip是有效的,在我的环境中本地工作正常。
以下是来自调用堆栈的日志
System.dll!System.Uri.CreateThis(string uri,bool dontEscape,System.UriKind uriKind)+ 0xc4 bytes
System.dll!System.Uri.Uri(string uriString,System.UriKind uriKind)+ 0x1d bytes
WPCordovaClassLib.dll!WPCordovaClassLib.Cordova.Commands.InAppBrowser.ShowSystemBrowser(string url)+ 0xe bytes WPCordovaClassLib.dll!WPCordovaClassLib.Cordova.Commands.InAppBrowser.open(字符串选项)+ 0x53字节 mscorlib.dll!System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo rtmi,object obj,System.Reflection.BindingFlags invokeAttr,System.Reflection.Binder binder,object parameters,System.Globalization.CultureInfo culture,bool isBinderDefault,System .Reflection.Assembly caller,bool verifyAccess,ref System.Threading.StackCrawlMark stackMark)
mscorlib.dll!System.Reflection.RuntimeMethodInfo.InternalInvoke(object obj,System.Reflection.BindingFlags invokeAttr,System.Reflection.Binder binder,object [] parameters,System.Globalization.CultureInfo culture,ref System.Threading.StackCrawlMark stackMark)+ 0x168字节 mscorlib.dll!System.Reflection.MethodBase.Invoke(object obj,object [] parameters)+ 0xa bytes
WPCordovaClassLib.dll!WPCordovaClassLib.Cordova.Commands.BaseCommand.InvokeMethodNamed(string methodName,object [] args)+ 0x13 bytes
WPCordovaClassLib.dll!WPCordovaClassLib.Cordova.NativeExecution.ProcessCommand.AnonymousMethod__2(object func)+ 0x31 bytes mscorlib.dll!System.Threading.ThreadHelper.ThreadStartHelper(System.Threading.ThreadHelper t)+ 0x34 bytes
mscorlib.dll!System.Threading.ThreadHelper.ThreadStart_Context(对象状态)+ 0xb字节
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext,System.Threading.ContextCallback callback,object state)+ 0x63 bytes
mscorlib.dll!System.Threading.ThreadHelper.ThreadStartHelper()+ 0x2a bytes
请让我知道出了什么问题。
注意:在Windows Phone 7 IE浏览器中,相同的URL可以正常工作。
答案 0 :(得分:0)
尝试对您的网址使用 encodeURI()方法。我认为它会解决你的问题
var ref = window.open(encodeURI('http://www.xyz.com/download.aspx'), '_system');