Inhaltsverzeichnis
回复内容:
Heim Web-Frontend H5-Tutorial 微信如何实现向浏览器注入JS API,并且调用方式就像浏览器原生API一样?

微信如何实现向浏览器注入JS API,并且调用方式就像浏览器原生API一样?

Jun 07, 2016 am 08:44 AM
api google ios

首先,我是一名前端。最近公司在试验iOS与H5混合开发,那么肯定少不了js与OC的通信。之前了解到微信浏览器内置了大量JS API来调用原生功能,我猜测应该是通过OC注入的。并且这些API是可以执行js回调的,灵活度很高,不过接口好像都是异步的。最近我在google如何实现,发现以前是有一种OC通过拦截页面请求的方式,让js调用OC接口,但似乎有很多局限性。请问有更好的解决办法吗?iOS7 开放的JavascriptCore框架,可以在此应用吗?

回复内容:

泻药

请阅读资料:
JavaScriptCore

当然可以在这里用。应该说JavaScriptCore就是用在这里的。
当然,你也可以看看ReactNative是怎么把Objective-C和JavaScript联合起来的。 泻药

偶没整过微信和端开发
估摸着是这样的
你姑且看看好了

在高局限性的ios上
肯定是通过OC通过拦截页面请求的方式,让js调用OC接口来实现的

只不过 jsb (jsBridge)是在页面插入个 iframe
然后根据传入的 action 字符串名字构建出特殊的 scheme 给 iframe
然后 OC 监听这个 frame 的 url change 事件来截获 scheme
并分析其字符串
调用指定 OC 方法

由于监听事件后才能继续处理
所以jsb 相关 api 设计都是异步的。

方法运行完成后
根据全局内注册的hash(用来与回调对应)来找出该执行哪个回调
用webview api 内具有 execute script 功能的 api 拼接出js代码字符串来执行,
比如 :
webview.frame.get(0).execscript("window.jsb.getCallback('" + actionname +', '" + param+ "' )")
当然偶写的不是OC语法的玩意
凑合看看吧。

反正偶觉得在功能提供有限的移动端webview上也就这样了,没更好的方法。


(要是 PC 端的QT之类,才不用这么麻烦呢,只要是C++静态函数(方法)
直接就能挂在webvie内指定的js对象(包括全局对象)上
然后js就能直接调用了,还是同步的) oc有个 webview.stringByEvaluatingJavaScriptFromString 来通过字符串执行js,注入js就是执行代码,比如接口声明,windows.wxBridge=function 之类的就行了

真正通信是莫大的答案里,拦截网络通信方式 js bridge 可以去唐巧的博客上逛逛,主要看js和oc的通信
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Aktualisieren | Hacker erklärt, wie man Epic Games Store und Fortnite auf dem iPad außerhalb der EU installiert Aktualisieren | Hacker erklärt, wie man Epic Games Store und Fortnite auf dem iPad außerhalb der EU installiert Aug 18, 2024 am 06:34 AM

Update: Saunders Tech hat auf seinem YouTube-Kanal ein Tutorial hochgeladen (Video unten eingebettet), in dem erklärt wird, wie man Fortnite und den Epic Games Store auf einem iPad außerhalb der EU installiert. Für den Prozess sind jedoch nicht nur bestimmte Betaversionen von iO erforderlich

Google Pixel 9 Pro XL wird im Desktop-Modus getestet Google Pixel 9 Pro XL wird im Desktop-Modus getestet Aug 29, 2024 pm 01:09 PM

Google hat den DisplayPort Alternate Mode mit der Pixel-8-Serie eingeführt und ist auch in der neu eingeführten Pixel-9-Reihe vorhanden. Während es hauptsächlich dazu dient, das Smartphone-Display mit einem angeschlossenen Bildschirm zu spiegeln, können Sie es auch für den Desktop verwenden

Google Tensor G4 von Pixel 9 Pro XL hinkt Tensor G2 in Genshin Impact Google Tensor G4 von Pixel 9 Pro XL hinkt Tensor G2 in Genshin Impact Aug 24, 2024 am 06:43 AM

Google hat kürzlich auf die Leistungsbedenken bezüglich des Tensor G4 der Pixel-9-Reihe reagiert. Das Unternehmen sagte, dass der SoC nicht darauf ausgelegt sei, Benchmarks zu schlagen. Stattdessen konzentrierte sich das Team darauf, dass es in den Bereichen, in denen Google das c wünscht, eine gute Leistung erbringt

Der neue Google Pixel-Desktopmodus wird in einem neuen Video als mögliche Alternative zu Motorola Ready For und Samsung DeX vorgestellt Der neue Google Pixel-Desktopmodus wird in einem neuen Video als mögliche Alternative zu Motorola Ready For und Samsung DeX vorgestellt Aug 08, 2024 pm 03:05 PM

Es sind einige Monate vergangen, seit Android Authority einen neuen Android-Desktop-Modus vorgestellt hat, den Google in Android 14 QPR3 Beta 2.1 versteckt hat. Wir kommen direkt auf den Fersen, als Google die DisplayPort-Alt-Modus-Unterstützung für Pixel 8 und Pixel 8 hinzufügt

Google öffnet AI Test Kitchen & Imagen 3 für die meisten Nutzer Google öffnet AI Test Kitchen & Imagen 3 für die meisten Nutzer Sep 12, 2024 pm 12:17 PM

Die AI Test Kitchen von Google, die eine Suite von KI-Designtools zum Spielen enthält, ist mittlerweile für Nutzer in weit über 100 Ländern weltweit geöffnet. Dieser Schritt markiert das erste Mal, dass viele Menschen auf der ganzen Welt Imagen 3, Googl, nutzen können

Google Pixel 9 Pro XL belegt den 2. Platz im „globalen' Smartphone-Kamera-Ranking von DxOMark Google Pixel 9 Pro XL belegt den 2. Platz im „globalen' Smartphone-Kamera-Ranking von DxOMark Aug 23, 2024 am 06:42 AM

Googles neue Pixel-9-Serie hat eine neue Variante eingeführt, die es in früheren Modellreihen nicht gab: das Pixel 9 Pro XL. Es ist im Wesentlichen identisch mit der Nicht-XL-Variante (bei Amazon vorbestellen), verfügt aber, wie der Name schon sagt, über einen größeren Bildschirm. Die beiden e

Apple iOS / iPadOS 18 Entwicklervorschauversion Beta 7 veröffentlicht Apple iOS / iPadOS 18 Entwicklervorschauversion Beta 7 veröffentlicht Aug 21, 2024 am 07:41 AM

Vielen Dank an die Internetnutzer Yaochi Qinglian, DREAMM_ und Ji Ren e für die Übermittlung von Hinweisen! [Klicken Sie hier, um direkt zum Upgrade-Tutorial zu gelangen] Laut Nachrichten vom 21. August hat Apple heute das Beta7-Update für iOS/iPadOS18-Entwickler (interne Versionsnummer: 22A5346a) an iPhone- und iPad-Benutzer weitergegeben. Dieses Update ist vom letzten getrennt Beta/RC-Veröffentlichung. 8 Tage. Die Beta5- und Beta6-Updates von Apple sind in der Regel stabil und führen keine wesentlichen neuen Funktionen ein (hauptsächlich die Anpassung der Details des Kontrollzentrums). Apple konzentriert sich auf die Behebung von Fehlern und die Verbesserung des Erlebnisses in Vorbereitung auf die offizielle Veröffentlichung im September. Daher sollte das heute von Apple veröffentlichte Beta7-Update theoretisch das letzte Beta-Versionsupdate von iOS/iPadOS18 sein.

Google bestätigt, dass das Pixel 9 Pro Fold aufgrund des merkwürdigen Designs nicht mit offiziellem kabellosem Ladezubehör kompatibel ist Google bestätigt, dass das Pixel 9 Pro Fold aufgrund des merkwürdigen Designs nicht mit offiziellem kabellosem Ladezubehör kompatibel ist Sep 01, 2024 am 06:31 AM

Das Pixel 9 Pro Fold ist eine Art Kehrtwende für Googles aufstrebende faltbare Sparte. Tatsächlich sind die Unterschiede zwischen dem Pixel 9 Pro Fold und dem Pixel Fold so groß, dass ersteres eher mit dem OnePlus Open verglichen wurde (derzeit 1.399,99 $ bei A

See all articles