1

Windows Phone 7 PhoneGap アプリでサーバーからファイルのダウンロードを開始する URL を開こうとしています。

次のようにconfig.xmlでInAppBrowserプラグインを有効にし、サーバー側に関連するコードを追加しました(URLをシステムブラウザで開く必要があります)

var ref = window.open(' http://www.xyz.com/download.aspx ', '_system');

しかし、これを開こうとすると、次の例外がスローされます(出力ウィンドウから)

タイプ 'System.UriFormatException' の初回例外が System.dll で発生しました

Error:"Syntax error, unrecognized expression: [data-role='footer']#sfdmfdOptionsNavbar li a# file: http://www.xyz.com/js/jquery/SmartphoneJquery/jquery-2.0.0.js Line:1612 "

スレッド '' (0xfc108e2) はコード 0 (0x0) で終了しました。

タイプ 'System.Reflection.TargetInvocationException' の初回例外が mscorlib.dll で発生しました

エラー: ProcessCommand の例外 :: TargetInvocationException

エラー: オブジェクト :: InAppBrowser で InvokeMethodNamed :: を開くことができませんでした

スレッド '' (0xaa5031a) はコード 0 (0x0) で終了しました。アプリの終了

注: 説明のために元の IP を xyz.com に変更しました。元の IP は有効で、私の環境ではローカルで正常に動作しています。

以下はコールスタックからのログです

System.dll!System.Uri.CreateThis(string uri, bool dontEscape, System.UriKind uriKind) + 0xc4 バイト
System.dll!System.Uri.Uri(string uriString, System.UriKind uriKind) + 0x1d バイト
WPCordovaClassLib.dll!WPCordovaClassLib .Cordova.Commands.InAppBrowser.ShowSystemBrowser(文字列 URL) + 0xe バイト WPCordovaClassLib.dll!WPCordovaClassLib.Cordova.Commands.InAppBrowser.open(文字列オプション) + 0x53 バイト mscorlib.dll!System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection) .RuntimeMethodInfo rtmi、オブジェクト obj、System.Reflection.BindingFlags invokeAttr、System.Reflection.Binder バインダー、オブジェクト パラメーター、System.Globalization.CultureInfo カルチャ、bool isBinderDefault、System.Reflection.Assembly 呼び出し元、bool verifyAccess、ref System.Threading.StackCrawlMarkスタックマーク)
mscorlib.dll!System.Reflection.RuntimeMethodInfo.InternalInvoke(オブジェクト obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder バインダー, object[] パラメーター, System.Globalization.CultureInfo カルチャ, ref System.Threading.StackCrawlMark stackMark) + 0x168 バイト mscorlib.dll!System.Reflection.MethodBase.Invoke(object obj, object[] パラメータ) + 0xa バイト
WPCordovaClassLib.dll!WPCordovaClassLib.Cordova.Commands.BaseCommand.InvokeMethodNamed(string methodName, object[] args) + 0x13 バイト
WPCordovaClassLib.dll!WPCordovaClassLib.Cordova.NativeExecution.ProcessCommand.AnonymousMethod__2(object func) + 0x31 バイト mscorlib.dll!System.Threading.ThreadHelper.ThreadStartHelper(System.Threading.ThreadHelper t) + 0x34 バイト
mscorlib.dll!System.Threading.ThreadHelper.ThreadStart_Context(オブジェクトの状態
) + 0xb バイト
mscorlib.dll!System.Threading.ThreadHelper.ThreadStartHelper() + 0x2a バイト

何が問題なのか教えてください。

注: Windows Phone 7 IE ブラウザーでは、同じ URL が正常に機能します。

4

1 に答える 1

0

URL でencodeURI()メソッドを使用してみてください。私はそれがあなたの問題を解決すると思います

var ref = window.open(encodeURI('http://www.xyz.com/download.aspx'), '_system');
于 2013-08-01T14:26:04.510 に答える