WKWebview 加载带有查询参数的本地 html 文件不起作用?
WKWebview load local html file with query parameter not work?
本地 URL 这里:
file:///Users/XXX/Library/Developer/CoreSimulator/Devices/96C7E920-4220-4E51-9E0C-5F075F653AED/data/Containers/Bundle/Application/B3CFF26D-AC05-4430-A6A9-69D46A93C193/ABC.app/ABC/index.html/loadTargetPage?pageName=homePage
我有一个本地 html 文件,我想在加载请求时添加查询参数。
但是当我使用本地 url 加载请求时,wkwebview 委托函数 webviewDidFinish
不起作用。
我刚看到这个函数 webviewDidStartProvisionalNavigation
被调用了。
我认为 wkwebview 加载失败。这有什么问题吗?
let parameters = ["pageName": "homePage"]
webview.load(appendURLString: "/loadTargetPage", queryParameters: parameters)
public func load(appendURLString: String? = nil, queryParameters: [String: String]? = nil){
if let bundle = Bundle(identifier: APP_BUNDLE_IDENTIFIER), var path = bundle.path(forResource: LOCAL_WEB_NAME, ofType: LOCAL_WEB_FILES_TYPE, inDirectory: LOCAL_WEB_FILES_DOCUMENT_PATH), FileManager.default.fileExists(atPath: path) {
if let appendURLString = appendURLString {
path = path + appendURLString
}
let url: URL = URL(fileURLWithPath: path)
if let queryParameter = queryParameters?.first {
let queryItems = [URLQueryItem(name: queryParameter.key, value: queryParameter.value)]
if let finalURL = url.appending(queryItems) {
self.webview?.load(URLRequest(url: finalURL))
}
return
}
self.webview?.load(URLRequest(url: url))
} else {
self.hybridSDKDelegate?.showAlertView?(title: "HybridSDK_ERROR", message: "html path error", confirmBtnTitle: "OK", cancelBtnTitle: nil)
}
}
我怀疑文件 URI 方案是否支持查询参数。
因此,您可以在获取其余 api 时使用“?pageName=homePage”。
但在获取本地文件时不是。
本地 URL 这里:
file:///Users/XXX/Library/Developer/CoreSimulator/Devices/96C7E920-4220-4E51-9E0C-5F075F653AED/data/Containers/Bundle/Application/B3CFF26D-AC05-4430-A6A9-69D46A93C193/ABC.app/ABC/index.html/loadTargetPage?pageName=homePage
我有一个本地 html 文件,我想在加载请求时添加查询参数。
但是当我使用本地 url 加载请求时,wkwebview 委托函数 webviewDidFinish
不起作用。
我刚看到这个函数 webviewDidStartProvisionalNavigation
被调用了。
我认为 wkwebview 加载失败。这有什么问题吗?
let parameters = ["pageName": "homePage"]
webview.load(appendURLString: "/loadTargetPage", queryParameters: parameters)
public func load(appendURLString: String? = nil, queryParameters: [String: String]? = nil){
if let bundle = Bundle(identifier: APP_BUNDLE_IDENTIFIER), var path = bundle.path(forResource: LOCAL_WEB_NAME, ofType: LOCAL_WEB_FILES_TYPE, inDirectory: LOCAL_WEB_FILES_DOCUMENT_PATH), FileManager.default.fileExists(atPath: path) {
if let appendURLString = appendURLString {
path = path + appendURLString
}
let url: URL = URL(fileURLWithPath: path)
if let queryParameter = queryParameters?.first {
let queryItems = [URLQueryItem(name: queryParameter.key, value: queryParameter.value)]
if let finalURL = url.appending(queryItems) {
self.webview?.load(URLRequest(url: finalURL))
}
return
}
self.webview?.load(URLRequest(url: url))
} else {
self.hybridSDKDelegate?.showAlertView?(title: "HybridSDK_ERROR", message: "html path error", confirmBtnTitle: "OK", cancelBtnTitle: nil)
}
}
我怀疑文件 URI 方案是否支持查询参数。 因此,您可以在获取其余 api 时使用“?pageName=homePage”。 但在获取本地文件时不是。