Jadual Kandungan
回复内容:
Rumah hujung hadapan web Tutorial 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的通信
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Google Pixel 9 Pro XL diuji dengan mod desktop Google Pixel 9 Pro XL diuji dengan mod desktop Aug 29, 2024 pm 01:09 PM

Google telah memperkenalkan Mod Ganti DisplayPort dengan siri Pixel 8, dan ia hadir pada barisan Pixel 9 yang baru dilancarkan. Walaupun ia terdapat terutamanya untuk membolehkan anda mencerminkan paparan telefon pintar dengan skrin yang disambungkan, anda juga boleh menggunakannya untuk desktop

Google Tensor G4 bagi Pixel 9 Pro XL ketinggalan di belakang Tensor G2 dalam Genshin Impact Google Tensor G4 bagi Pixel 9 Pro XL ketinggalan di belakang Tensor G2 dalam Genshin Impact Aug 24, 2024 am 06:43 AM

Google baru-baru ini bertindak balas terhadap kebimbangan prestasi mengenai Tensor G4 barisan Pixel 9. Syarikat itu berkata bahawa SoC tidak direka untuk mengalahkan penanda aras. Sebaliknya, pasukan memberi tumpuan untuk menjadikannya berprestasi baik di kawasan yang Google mahukan c

Kemas kini | Penggodam menerangkan cara memasang Epic Games Store dan Fortnite pada iPad di luar EU Kemas kini | Penggodam menerangkan cara memasang Epic Games Store dan Fortnite pada iPad di luar EU Aug 18, 2024 am 06:34 AM

Kemas kini: Saunders Tech telah memuat naik tutorial ke saluran YouTubenya (video dibenamkan di bawah) yang menerangkan cara memasang Fortnite dan Epic Games Store pada iPad di luar EU. Walau bagaimanapun, bukan sahaja proses itu memerlukan versi beta khusus iO

Mod desktop Google Pixel baharu dipamerkan dalam video baharu yang mungkin alternatif Motorola Ready For dan Samsung DeX Mod desktop Google Pixel baharu dipamerkan dalam video baharu yang mungkin alternatif Motorola Ready For dan Samsung DeX Aug 08, 2024 pm 03:05 PM

Beberapa bulan telah berlalu sejak Pihak Berkuasa Android menunjukkan mod desktop Android baharu yang telah disembunyikan oleh Google dalam Android 14 QPR3 Beta 2.1. Tiba di hadapan Google menambah sokongan Mod Alt DisplayPort untuk Pixel 8 dan Pixel 8

Google membuka AI Test Kitchen & Imagen 3 kepada kebanyakan pengguna Google membuka AI Test Kitchen & Imagen 3 kepada kebanyakan pengguna Sep 12, 2024 pm 12:17 PM

Dapur Uji AI Google, yang merangkumi set alatan reka bentuk AI untuk dimainkan oleh pengguna, kini telah dibuka kepada pengguna di lebih 100 negara di seluruh dunia. Langkah ini menandakan kali pertama ramai di seluruh dunia akan dapat menggunakan Imagen 3, Google

Perbandingan kamera Pixel 9 Pro XL vs iPhone 15 Pro Max mendedahkan kemenangan Google yang mengejutkan dalam prestasi video dan zum Perbandingan kamera Pixel 9 Pro XL vs iPhone 15 Pro Max mendedahkan kemenangan Google yang mengejutkan dalam prestasi video dan zum Aug 24, 2024 pm 12:32 PM

Google Pixel 9 Pro dan Pro XL ialah jawapan Google kepada Samsung Galaxy S24 Ultra dan Apple iPhone 15 Pro dan Pro Max. Daniel Sin di YouTube (tonton di bawah) telah membandingkan Google Pixel 9 Pro XL dengan iPhone 15 Pro Max dengan beberapa

Versi pratonton pembangun Apple iOS / iPadOS 18 Beta 7 dikeluarkan Versi pratonton pembangun Apple iOS / iPadOS 18 Beta 7 dikeluarkan Aug 21, 2024 am 07:41 AM

Terima kasih kepada netizen Yaochi Qinglian, DREAMM_, dan Ji Ren e kerana menyerahkan petunjuk! [Klik di sini untuk pergi terus ke tutorial naik taraf] Menurut berita pada 21 Ogos, Apple hari ini menolak kemas kini versi pratonton pembangun iOS/iPadOS18 Beta7 (nombor versi dalaman: 22A5346a) kepada pengguna iPhone dan iPad ini diasingkan daripada yang terakhir Keluaran Beta/RC 8 hari. Kemas kini Beta5 dan Beta6 Apple cenderung stabil dan tidak memperkenalkan ciri baharu yang ketara (terutamanya melaraskan butiran pusat kawalan Apple memfokuskan pada membetulkan pepijat dan menambah baik pengalaman sebagai persediaan untuk keluaran rasmi pada bulan September). Oleh itu, kemas kini Beta7 yang dikeluarkan oleh Apple hari ini secara teorinya sepatutnya merupakan kemas kini versi Beta terakhir bagi iOS/iPadOS18.

Google mengesahkan ketidakserasian Pixel 9 Pro Fold dengan aksesori pengecasan wayarles rasmi berkat reka bentuk yang ingin tahu Google mengesahkan ketidakserasian Pixel 9 Pro Fold dengan aksesori pengecasan wayarles rasmi berkat reka bentuk yang ingin tahu Sep 01, 2024 am 06:31 AM

Pixel 9 Pro Fold adalah serupa dengan muka volte untuk bahagian boleh lipat yang baru lahir dari Google. Sebenarnya, begitulah perbezaan antara Pixel 9 Pro Fold dan Pixel Fold yang sebelumnya telah dibandingkan dengan OnePlus Open (curr. $1,399.99 pada A

See all articles