Разбор HTML-строки в JSON в Swift - PullRequest
0 голосов
/ 07 декабря 2018

Я работаю с javascript для отображения строки с использованием HTML в WKWebView

Вызов функции 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, поэтому загрузите функцию javascript, используя строку HTML.

Ответы [ 2 ]

0 голосов
/ 16 мая 2019
 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)
0 голосов
/ 07 декабря 2018

Для получения URL-адресов ресурсов приложения следует использовать метод URLForResource класса NSBundle.

Swift 2

let url = NSBundle.mainBundle().URLForResource("privacy", withExtension:"html") 

Swift 3

let url = Bundle.main.url(forResource: "privacy", withExtension: "html")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...