簡體   English   中英

如何將參數傳遞給fileURL

[英]How to pass arguments to fileURL

我試圖以通常的方式在文件路徑的NSURL中傳遞參數:

(fileURL)?arg1=val1&arg2=val2

問題是我不斷從UIWebView獲得以下錯誤:

Failed to load webpage with error: The requested URL was not found on this server.

當我刪除參數后綴時,一切正常。 關於Apple的文檔說明了該方法

+(id)fileURLWithPath:(NSString *)路徑

像這樣工作: "path: The path that the NSURL object will represent. path should be a valid system path..."

是否可以將參數添加到fileURL? 如果是這樣,我該怎么辦?

順便說一下,如果我嘗試使用帶有Javascript調用的UIWebView中的參數加載本地URL文件,我就成功了:

document.location = url;

我嘗試從本機代碼中找到解決方案...

好的,我看到了你的問題。 你不能將?arg1=something&arg2=...到路徑中,因為可能有一個名為like的文件,所以NSURL會逃避? 字符,以確保將其用作路徑,而不是查詢字符串的一部分( ?之后的任何內容在URL中稱為查詢)。

要正確執行此操作,您需要通過提供正確轉義的字符串來設置URL。

NSString *path = @"/Users/mike/file.html"; 
NSString *query = @"option1=5&option2=hello"; // for example

NSString *encodedPath = [path stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"file://%@?%@",
                                   encodedPath,
                                   query]];

您是否嘗試過使用該片段? 它是#符號后面的URL的一部分。 這部分永遠不會發送到服務器,所以不應該干擾路徑,但頁面上的javascript仍然可以讀取它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM