Table des matières
回复内容:
Maison interface Web Tutoriel H5 微信如何实现向浏览器注入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的通信
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Google Pixel 9 Pro XL est testé avec le mode bureau Google Pixel 9 Pro XL est testé avec le mode bureau Aug 29, 2024 pm 01:09 PM

Google a introduit le mode alternatif DisplayPort avec la série Pixel 8, et il est présent sur la gamme Pixel 9 récemment lancée. Bien qu'il soit principalement là pour vous permettre de refléter l'affichage de votre smartphone avec un écran connecté, vous pouvez également l'utiliser pour un ordinateur de bureau.

Mise à jour | Hacker explique comment installer Epic Games Store et Fortnite sur iPad en dehors de l'UE Mise à jour | Hacker explique comment installer Epic Games Store et Fortnite sur iPad en dehors de l'UE Aug 18, 2024 am 06:34 AM

Mise à jour : Saunders Tech a mis en ligne un didacticiel sur sa chaîne YouTube (vidéo intégrée ci-dessous) expliquant comment installer Fortnite et Epic Games Store sur un iPad en dehors de l'UE. Cependant, non seulement le processus nécessite des versions bêta spécifiques d'iO

Google Tensor G4 du Pixel 9 Pro XL est en retard sur Tensor G2 en Genshin Impact Google Tensor G4 du Pixel 9 Pro XL est en retard sur Tensor G2 en Genshin Impact Aug 24, 2024 am 06:43 AM

Google a récemment répondu aux problèmes de performances concernant le Tensor G4 de la gamme Pixel 9. La société a déclaré que le SoC n'était pas conçu pour battre les benchmarks. Au lieu de cela, l'équipe s'est concentrée sur sa performance dans les domaines où Google souhaite que le c

Le nouveau mode de bureau Google Pixel présenté dans une nouvelle vidéo comme alternative possible à Motorola Ready For et Samsung DeX Le nouveau mode de bureau Google Pixel présenté dans une nouvelle vidéo comme alternative possible à Motorola Ready For et Samsung DeX Aug 08, 2024 pm 03:05 PM

Quelques mois se sont écoulés depuis qu'Android Authority a démontré un nouveau mode de bureau Android que Google avait caché dans Android 14 QPR3 Beta 2.1. Arrivant juste après Google, il ajoute la prise en charge du mode Alt DisplayPort pour les Pixel 8 et Pixel 8.

Google ouvre AI Test Kitchen & Imagen 3 à la plupart des utilisateurs Google ouvre AI Test Kitchen & Imagen 3 à la plupart des utilisateurs Sep 12, 2024 pm 12:17 PM

AI Test Kitchen de Google, qui comprend une suite d'outils de conception d'IA avec lesquels les utilisateurs peuvent jouer, est désormais ouvert aux utilisateurs dans plus de 100 pays à travers le monde. Cette décision marque la première fois que de nombreuses personnes dans le monde pourront utiliser Imagen 3, Google

Google Pixel 9 Pro XL se classe 2e dans le classement « mondial » des appareils photo pour smartphone de DxOMark Google Pixel 9 Pro XL se classe 2e dans le classement « mondial » des appareils photo pour smartphone de DxOMark Aug 23, 2024 am 06:42 AM

La nouvelle série Pixel 9 de Google a introduit une nouvelle variante qui n'était pas présente dans les gammes précédentes, le Pixel 9 Pro XL. Il est essentiellement identique à la variante non XL (précommande sur Amazon), mais comme son nom l'indique, il dispose d'un écran plus grand. Les deux e

Sortie de la version bêta 7 d'Apple iOS / iPadOS 18 pour les développeurs Sortie de la version bêta 7 d'Apple iOS / iPadOS 18 pour les développeurs Aug 21, 2024 am 07:41 AM

Merci aux internautes Yaochi Qinglian, DREAMM_ et Ji Ren e pour avoir soumis des indices ! [Cliquez ici pour accéder directement au didacticiel de mise à niveau] Selon les informations du 21 août, Apple a proposé aujourd'hui la mise à jour Beta7 de la version préliminaire du développeur iOS/iPadOS18 (numéro de version interne : 22A5346a) aux utilisateurs d'iPhone et d'iPad. Cette mise à jour est distincte de la précédente. Sortie bêta/RC 8 jours. Les mises à jour Beta5 et Beta6 d'Apple ont tendance à être stables et n'introduisent pas de nouvelles fonctionnalités significatives (principalement l'ajustement des détails du centre de contrôle). Apple se concentre sur la correction des bugs et l'amélioration de l'expérience en vue de la sortie officielle en septembre. Par conséquent, la mise à jour Beta7 publiée par Apple aujourd'hui devrait théoriquement être la dernière mise à jour de la version bêta d'iOS/iPadOS18.

La comparaison des caméras Pixel 9 Pro XL et iPhone 15 Pro Max révèle des victoires surprenantes de Google en termes de performances vidéo et de zoom La comparaison des caméras Pixel 9 Pro XL et iPhone 15 Pro Max révèle des victoires surprenantes de Google en termes de performances vidéo et de zoom Aug 24, 2024 pm 12:32 PM

Les Google Pixel 9 Pro et Pro XL sont les réponses de Google aux Samsung Galaxy S24 Ultra et aux Apple iPhone 15 Pro et Pro Max. Daniel Sin sur YouTube (regarder ci-dessous) a comparé le Google Pixel 9 Pro XL à l'iPhone 15 Pro Max avec certains

See all articles