我正在使用javascript使用WKWebView的HTML显示字符串
在我的View Controller中调用Javascript函数
myWebView.evaluateJavaScript("customMessageWithDictionary('\(self.jsonString)','\(strTestType)')") {
(id, error) in
print(error ?? "")
}
在HTML文件中
function customMessageWithDictionary(nameDetails,testType1) {
nameDetails = nameDetails.replace(/\\/g, '');
questionList = $.parseJSON(nameDetails);
var iterator=0
for (iterator = 0; iterator < questionList.length; iterator++)
questionList[iterator].UserGivenAnswerId= null;
questionObj = questionList[positionObj];
testType=testType1;
loadQuestions(true);
}
如果 jsonString 中有HTML标记,请提取错误,并且我的Javascript无法运行。因此WKWebview不会显示内容。
如果HTML标记位于我的jsonString中,请给我解决方案,因此请使用HTML字符串加载javascript函数。
答案 0 :(得分:1)
if let theJSONData = try? JSONSerialization.data( withJSONObject: self.aryOfQuestionList,options: .prettyPrinted ),
let theJSONText = String(data: theJSONData,encoding: String.Encoding.ascii)
{
print("JSON string = \n\(theJSONText)")
self.jsonString = (theJSONText as AnyObject) as! String
}
let regex = try! NSRegularExpression(pattern: "(?<=<\\w{1,40})\\s[^>]+(?=>)", options: .caseInsensitive)
let range = NSMakeRange(0, self.jsonString.count)
let htmlWithoutInlineAttributes = regex.stringByReplacingMatches(in: self.jsonString, options: [], range: range, withTemplate: "")
print(htmlWithoutInlineAttributes)
答案 1 :(得分:0)
要检索应用程序资源的URL,应使用NSBundle类的URLForResource方法。
雨燕2
let url = NSBundle.mainBundle().URLForResource("privacy", withExtension:"html")
雨燕3
let url = Bundle.main.url(forResource: "privacy", withExtension: "html")