JavaScriptとIOS ObjectC間のやり取りの詳細説明と実装コード
この記事では主にIOS OCとjsの間の相互作用の詳細な説明と実装コードを紹介します。必要な友人は
IOS OCとjsの間の相互作用の詳細な説明
JSインジェクションを参照してください。 OCを使用したJSコードをWebページに
JSインジェクションは、OCとJS間の対話とも呼ばれます
OCとJS間の対話にはブリッジ(仲介)が必要です。このブリッジはUIWebViewのプロキシメソッドです
Webページが初期コンテンツをロードします
#import "ViewController.h" @interface ViewController ()<UIWebViewDelegate> @property (weak, nonatomic) IBOutlet UIWebView *webView; @end - (void)viewDidLoad { [super viewDidLoad]; // 设置webView的代理 self.webView.delegate = self; // 加载网页数据 NSURL *URL = [NSURL URLWithString:@"http://m.dianping.com/tuan/deal/5501525"]; // NSURL *URL = [NSURL URLWithString:@"https://www.hao123.com/?tn=93321723_hao_pg"]; NSURLRequest *request = [NSURLRequest requestWithURL:URL]; [self.webView loadRequest:request]; }
UIWebViewのプロキシメソッド内で jsを使用してネイティブWebページを変更します
/// 网页加载完成之后调用的代理方法 : JS注入 : OC调用JS代码 - (void)webViewDidFinishLoad:(UIWebView *)webView { // 用于拼接JS代码的字符串 NSMutableString *stringM = [NSMutableString string]; // 拼接移除顶部导航的JS代码 [stringM appendString:@"var headerTag = document.getElementsByTagName('header')[0]; headerTag.parentNode.removeChild(headerTag);"]; // 拼接移除橙色按钮的JS代码 [stringM appendString:@"var footerBtnTag = document.getElementsByClassName('footer-btn-fix')[0]; footerBtnTag.parentNode.removeChild(footerBtnTag);"]; // 拼接移除底部布局的JS代码 [stringM appendString:@"var footerTag = document.getElementsByClassName('footer')[0]; footerTag.parentNode.removeChild(footerTag);"]; // 拼接给img标签添加点击事件的JS代码 [stringM appendString:@"var imgTag = document.getElementsByTagName('figure')[0].children[0]; imgTag.onclick = function(){window.location.href='https://www.baidu.com'};"]; // 这个方法就是UIWebView提供的.专门做JS注入的方法 [webView stringByEvaluatingJavaScriptFromString:stringM]; }
ネイティブネットワークリクエストのWebページジャンプをインターセプト
imgTag.onclick = function(){window.location.href='https://www.baidu.com‘}
imgTagをクリックすると、ネットワークリクエストを積極的に送信します
アクティブの目的ネットワークリクエストの送信: UIWebView がカスタム URL をインターセプトできるようにするためです
カスタマイズされた URL を使用して、クリックしたラベルが私がデザインしたラベルであるかどうかを判断/区別します
一意の URL をカスタマイズして、クリックされたラベルが一意であることを示します
要約すると、これは 2 つのステップです
最初のステップ: JS がラベルのクリック イベントを挿入し、カスタム URL リクエストをアクティブに送信します
2 番目のステップ: UIWebView でカスタム URL リクエストをインターセプトし、そして、リクエストを決定します
JS間接呼び出しOC: JSとOCの間の対話
Webページがロードを開始しようとしているときに呼び出されるプロキシメソッド: webView上のすべてのネットワークリクエストをインターセプトできます
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { // 获取拦截到的所有的请求 NSString *URLString = request.URL.absoluteString; //https://m.baidu.com/?from=1015143h // NSLog(@"%@",URLString); if ([URLString isEqualToString:@"https://m.baidu.com/?from=1015143h"]) { NSLog(@"我点击的是imgTag"); // 当我知道点击的是imgTag时,自动push //http://www.csdn.net/ NSURL *URL = [NSURL URLWithString:@"http://www.csdn.net/"]; NSURLRequest *request = [NSURLRequest requestWithURL:URL]; [self.webView loadRequest:request]; // TestViewController *testVC = [[TestViewController alloc] init]; // [self.navigationController pushViewController:testVC animated:YES]; // 因为这个地址是无效地址.不需要加载的 return NO; } // 返回YES的作用 : 表示你拦截到的请求,允许正常的发送出去;反之,不允许拦截到的请求发送出去 return YES; }
以上がJavaScriptとIOS ObjectC間のやり取りの詳細説明と実装コードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









毎年恒例の WWDC が終了し、間違いなく iOS18 がみんなの注目の的になっています。現在、多くのiPhoneユーザーがiOS18へのアップグレードを急いでいますが、さまざまなシステムバグが人々を不快にさせています。一部のブロガーは、「バグが非常に多い」ため、iOS18にアップグレードする場合は注意する必要があると述べています。このブロガーは、iPhoneがメインマシンの場合、最初のバージョンには多くのバグがあるため、iOS18にアップグレードしないことをお勧めすると述べています。また、現在発生しているいくつかのシステム バグについてもまとめました。 1. アイコン スタイルの切り替えが停止し、アイコンが表示されない場合があります。 2. 懐中電灯の幅のアニメーションが失われることがよくあります。 4. WeChat メッセージのプッシュに遅延が発生します。 10 秒。時々電話ができなくなり、画面が真っ暗になります。

手がかりを提出してくれたネチズンの Ji yingkesi、xxx_x、フライド トマト、テレンス、スパイシー チキン ドラムスティックに感謝します。 7 月 27 日のニュースによると、Apple は本日、開発者向けに iOS/iPadOS 18 Beta 4 アップデートを再リリースしました。内部バージョン番号は 22A5316j から 22A5316k にアップグレードされました。現時点では、2 つの Beta 4 バージョン アップデートの違いは不明です。登録された開発者は、「設定」アプリを開いて「ソフトウェア アップデート」セクションに入り、「ベータ アップデート」オプションをクリックして、iOS18/iPadOS18 開発者ベータ設定を切り替えてベータ バージョンを選択できます。ベータ版をダウンロードしてインストールするには、開発者アカウントに関連付けられた Apple ID が必要です。 iO 7 月 24 日の報道

7月31日のニュースによると、Appleは昨日(7月30日)プレスリリースを発行し、Swiftプログラミング言語で準同型暗号化を可能にする新しいオープンソースSwiftパッケージ(swift-homomorphic-encryption)のリリースを発表した。注: 準同型暗号 (HE) とは、暗号文の準同型演算特性を満たす暗号アルゴリズムを指します。つまり、データを準同型暗号化した後、暗号文に対して特定の計算を実行し、得られた暗号文の計算結果を同時に処理します。状態復号後の平文は、平文データに対して同じ計算を直接実行することと同等であり、データの「不可視性」が実現されます。準同型暗号技術は、基になる暗号化されていないデータを運用プロセスに漏らすことなく、暗号化データを計算できます。

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

6月1日のニュースによると、テクノロジーメディアAppleInsiderは本日ブログ投稿を公開し、AppleがiOS18システムの「Freeform」アプリケーション拡張機能の「Scenes」の新しいナビゲーション機能を開始し、オブジェクトの位置合わせの新しいオプションを追加すると述べた。 「Wubianji」アプリの紹介 まず、「Wubianji」アプリについて簡単に紹介します。このアプリは 2022 年にリリースされ、現在 iOS、iPadOS、macOS15、visionOS バージョンがリリースされています。 Apple の公式紹介文は次のとおりです。「Boundless Notes」は、インスピレーションを現実にするための優れたツールです。ほぼすべてのファイル タイプをサポートする柔軟なキャンバスで、プロジェクトをスケッチしたり、ムードボードをデザインしたり、ブレインストーミングを開始したりできます。 iCloud を使えば、すべてのボードを

[アップグレード チュートリアルに直接アクセスするには、ここをクリックしてください] 5 月 8 日のニュースによると、Apple は本日、iOS17.5RC アップデート (内部バージョン番号: 21F79) を iPhone ユーザーにプッシュしました。このアップデートは最後のリリースから 70 日後です。 iOS/iPadOS/watchOS/macOS 開発版とパブリックベータ版をアップグレードするにはどうすればよいですか? iOS/iPadOS17 開発者プレビュー版およびパブリック ベータ版をアップグレードするには、友人が共有したエクスペリエンスを参照できます: エクスペリエンス 投稿 1||エクスペリエンス 投稿 2||エクスペリエンス 投稿 3||エクスペリエンス 投稿 4。 iOS/iPadOS 16.4 Developer Preview Beta 1 からは、Apple Developer Program に登録する必要があります。登録後、システムの [設定] [ソフトウェア アップデート] を開き、アップグレード オプションを表示します。 iPhone または IP アドレスに注意してください。

ネチズンのおかげでスパイシーチキンレッグバーガー、ソフトメディアの新しい友達2092483、手書きの過去、DingHao、Xiaoxing_14、Wowotou Eat Big Kou、Feiying Q、ソフトメディアの新しい友達2168428、Slades、Aaron212、ハッピーリトルハリネズミ、リトルアール、小さな手がかり魚を食べるミルクキャット! [アップグレード チュートリアルに直接アクセスするには、ここをクリックしてください] 7 月 24 日のニュースによると、Apple は本日、iOS/iPadOS18 開発者プレビュー バージョン Beta4 アップデート (内部バージョン番号: 22A5316j) を iPhone および iPad ユーザーにプッシュしました。このアップデートは 15 日後です。最後のリリース。 Carplay 壁紙 Apple が CarPlay に壁紙を追加し、ライトモードとダークモードをカバーしています。その壁紙スタイルは iPhone に似ています。

終わったばかりのヨーロッパカップ決勝では、自分が応援するチームを夢中になって応援しましたか?来たるパリオリンピックでも、各競技のハイライトの瞬間を完璧に捉えることを楽しみにしていますか?中でも、高品質の視聴機器を備えていることが重要です。 Haqu K2 プロジェクターは、コストパフォーマンスが高く、優れたパフォーマンスを備えているため、ゲーム視聴に最適なプロジェクターです。高輝度で鮮明な画質だけでなく、ゲームのあらゆる瞬間を間近に感じられる臨場感あふれる視聴体験を提供します。あなたはすでにそのようなデバイスに惹かれていますか?オリンピックの情熱と夢をご自宅で楽しめること間違いなしです。 Haqu K2 の最も親密なハイライトは、210° のスーパー角度調整で、天井でも壁でも映画を見るのに便利です。
