目次
回复内容:
ホームページ ウェブフロントエンド 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的通信
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Google Pixel 9 Pro XLはデスクトップモードでテストされる Google Pixel 9 Pro XLはデスクトップモードでテストされる Aug 29, 2024 pm 01:09 PM

Google は、Pixel 8 シリーズで DisplayPort 代替モードを導入しており、新たに発売された Pixel 9 ラインナップにも搭載されています。これは主に、接続された画面でスマートフォンのディスプレイをミラーリングするためにありますが、デスクトップにも使用できます。

更新 |ハッカーが EU 外の iPad に Epic Games Store と Fortnite をインストールする方法を説明 更新 |ハッカーが EU 外の iPad に Epic Games Store と Fortnite をインストールする方法を説明 Aug 18, 2024 am 06:34 AM

更新: Saunders Tech は、EU 外の iPad に Fortnite と Epic Games Store をインストールする方法を説明するチュートリアルを YouTube チャンネルにアップロードしました (ビデオは下に埋め込まれています)。ただし、このプロセスには iO の特定のベータ版が必要なだけではありません。

Pixel 9 Pro XL の Google Tensor G4 は 原神 で Tensor G2 に遅れをとっています Pixel 9 Pro XL の Google Tensor G4 は 原神 で Tensor G2 に遅れをとっています Aug 24, 2024 am 06:43 AM

Googleは最近、Pixel 9ラインのTensor G4に関するパフォーマンスの懸念に対応しました。同社は、このSoCはベンチマークを上回るように設計されていないと述べた。代わりに、チームは Google が求めている分野でパフォーマンスを向上させることに重点を置きました。

新しい Google Pixel デスクトップ モードは、Motorola Ready For と Samsung DeX の代替として新鮮なビデオで紹介されています 新しい Google Pixel デスクトップ モードは、Motorola Ready For と Samsung DeX の代替として新鮮なビデオで紹介されています Aug 08, 2024 pm 03:05 PM

Android Authority が、Google が Android 14 QPR3 Beta 2.1 内に隠していた新しい Android デスクトップ モードをデモンストレーションしてから数か月が経過しました。 Google が Pixel 8 と Pixel 8 に DisplayPort Alt Mode サポートを追加することに追随して登場

Google、AI Test Kitchen & Imagen 3 をほとんどのユーザーに公開 Google、AI Test Kitchen & Imagen 3 をほとんどのユーザーに公開 Sep 12, 2024 pm 12:17 PM

Google の AI Test Kitchen には、ユーザーが遊べる一連の AI 設計ツールが含まれており、現在、世界 100 か国をはるかに超える国のユーザーに公開されています。この動きにより、世界中の多くの人が Imagen 3、Google を使用できるようになるのは初めてです。

Google Pixel 9 Pro XLがDxOMarkの「グローバル」スマートフォンカメラランキングで2位にランクイン Google Pixel 9 Pro XLがDxOMarkの「グローバル」スマートフォンカメラランキングで2位にランクイン Aug 23, 2024 am 06:42 AM

Google の新しい Pixel 9 シリーズには、以前のラインナップには存在しなかった新しいバリエーションである Pixel 9 Pro XL が導入されました。これは基本的に非 XL バージョン (Amazon で予約注文) と同じですが、名前が示すように、画面が大きくなっています。二人は

Apple iOS / iPadOS 18 開発者プレビュー版 Beta 7 がリリース Apple iOS / iPadOS 18 開発者プレビュー版 Beta 7 がリリース Aug 21, 2024 am 07:41 AM

ヒントを提供してくれたネチズン Yaochi Qinglian、DREAMM_、Ji Ren e に感謝します。 [アップグレード チュートリアルに直接アクセスするには、ここをクリックしてください] 8 月 21 日のニュースによると、Apple は本日、iOS/iPadOS18 開発者プレビュー バージョン Beta7 アップデート (内部バージョン番号: 22A5346a) を iPhone および iPad ユーザーにプッシュしました。このアップデートは、前回のアップデートとは別のものです。ベータ/RC リリースは 8 日。 Apple の Beta5 および Beta6 アップデートは安定している傾向があり、重要な新機能は導入されません (主にコントロール センターの詳細を調整します)。Apple は 9 月の正式リリースに備えてバグを修正し、エクスペリエンスを改善することに重点を置いています。したがって、Apple が本日リリースした Beta7 アップデートは、理論的には iOS/iPadOS18 の最後のベータ版アップデートとなるはずです。

Pixel 9 Pro XL と iPhone 15 Pro Max のカメラ比較で、ビデオとズームのパフォーマンスで驚くべき Google の勝利が明らかに Pixel 9 Pro XL と iPhone 15 Pro Max のカメラ比較で、ビデオとズームのパフォーマンスで驚くべき Google の勝利が明らかに Aug 24, 2024 pm 12:32 PM

Google Pixel 9 Pro および Pro XL は、Samsung Galaxy S24 Ultra、Apple iPhone 15 Pro および Pro Max などに対する Google の答えです。 Daniel Sin は YouTube (下記をご覧ください) で Google Pixel 9 Pro XL と iPhone 15 Pro Max を比較しています。

See all articles