1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/huqs-SwiftJavaScript

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

#SwiftJavaScript взаимодействие swift и javascript, где javascript может вызывать swift, а также swift может вызывать javascript через WKWebView, без использования UIWebView ! эффект

Возможности

  • JavaScript вызывает Native App
  • Native App вызывает JavaScript

Требования

  • iOS 8.0+/Mac OS X 10.9+/tvOS 9.0+/watchOS 2.0+
  • Xcode 7.2+

Общение

  • Если вам нужна помощь, свяжитесь со мной hu670014125@163.com

Использование

JavaScript вызывает Native App

let conf = WKWebViewConfiguration()
let userScript = WKUserScript(source: "redHeader()", injectionTime: .AtDocumentEnd, forMainFrameOnly: true)
conf.userContentController.addUserScript(userScript)
webView = WKWebView(frame: self.view.frame, configuration: conf)

Native App вызывает JavaScript

  1. Сначала добавьте WKScriptMessageHandler делегата
class ViewController: UIViewController, WKScriptMessageHandler
  1. Реализуйте метод делегата «userContentController»
func userContentController(userContentController: WKUserContentController!, didReceiveScriptMessage message: WKScriptMessage!) {
  if(message.name == "callbackHandler") {
      println("JavaScript отправляет сообщение \(message.body)")
  }
}
  1. Начните слушатель событий JavaScript в WebView
contentController.addScriptMessageHandler(self, name: "callbackHandler")
  1. Добавьте следующий JavaScript в вебе
webkit.messageHandlers.callbackHandler.postMessage("JavaScript вызывает Swift");
  1. Вызов Swift JavaScript
self.webView.evaluateJavaScript("redHeader('от Swift')") { (sender:AnyObject?, error:NSError?) -> Void in
print("sender:\(sender)   error:\(error)")
}
redHeader  это метод JavaScript, который принимает строку

Исходный код HTML

<html>
<head>
<meta charset="UTF-8">
<title>веб-страница</title>
</head>
<body>
<style type='text/css'>
body { font-size: 60px }
</style>
<h3 align="center">Заголовок 1 (APP вызывает JS, чтобы сделать заголовок красным)</h3>
<br>
<button style="text-align:center;height:100px;width:300px;font-size:40px;" onclick="callNativeApp()">Вызвать APP</button>
<br><br><br>
<div id="jsParamFuncSpan"></div>
```html
<script>
// JS calls the APP (callbackHandler must be consistent on both sides)
function callNativeApp() {
try {
webkit.messageHandlers.callbackHandler.postMessage("JavaScript вызывает Swift");
} catch (err) {
console.log('Native контекст ещё не существует');
}
}

var count = 0;
// APP calls JS
function redHeader(msg) {
count++;
document.querySelector('h3').style.color = "red";
document.getElementById('jsParamFuncSpan').innerHTML =
msg + '&nbsp;&nbsp;&nbsp;<font color=red>Вы кликнули&nbsp;&nbsp;' + count + '&nbsp;&nbsp;раз</font>';
}
</script>

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Swift и 3 других языков
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/huqs-SwiftJavaScript.git
git@api.gitlife.ru:oschina-mirror/huqs-SwiftJavaScript.git
oschina-mirror
huqs-SwiftJavaScript
huqs-SwiftJavaScript
huqs