


Explication détaillée et code d'implémentation de l'interaction entre javascript et IOS ObjectC
Cet article présente principalement l'explication détaillée et le code d'implémentation de l'interaction entre IOS OC et js Les amis dans le besoin peuvent se référer à
Explication détaillée de l'interaction entre IOS. OC et js
Injection JS : injecter du code JS avec OC dans la page Web
L'injection JS est également appelée l'interaction entre OC et JS
L'interaction OC et JS nécessite un pont (intermédiaire), qui est la méthode proxy de UIWebView
La page Web charge le contenu initial
#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]; }
Utilisez js dans la méthode proxy de UIWebView pour changer la page Web native
/// 网页加载完成之后调用的代理方法 : 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]; }
Interception du saut de page Web de demande de réseau natif
imgTag.onclick = function(){window.location.href='https://www.baidu.com‘}
Lorsque vous cliquez sur imgTag, envoyez activement des requêtes réseau
Le but de l'envoi actif de requêtes réseau : est de permettre à UIWebView d'intercepter mon URL personnalisée
Utiliser l'URL personnalisée pour déterminer/distinguer si l'étiquette sur laquelle j'ai cliqué est celle que j'ai conçue
URL personnalisée et unique, indiquant que le clic est un label unique
En résumé, c'est deux étapes
La première étape : JS injecte l'événement de clic de l'étiquette et envoie activement une demande d'URL personnalisée
Étape 2 : Dans UIWebView, interceptez la demande d'URL personnalisée, puis déterminez la demande
JS indirectement appelle OC : interaction JS et OC
La méthode proxy appelée lorsque la page Web est sur le point de commencer à se charger : peut intercepter toutes les requêtes réseau sur la 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; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

La WWDC annuelle est terminée et iOS18 est sans aucun doute au centre de toutes les attentions. Actuellement, de nombreux utilisateurs d’iPhone se précipitent pour passer à iOS18, mais divers bugs du système mettent les gens mal à l’aise. Certains blogueurs ont déclaré qu'il fallait être prudent lors de la mise à niveau vers iOS18 car "il y a tellement de bugs". Le blogueur a déclaré que si votre iPhone est votre machine principale, il est recommandé de ne pas passer à iOS18 car la première version comporte de nombreux bugs. Il a également résumé plusieurs bugs du système actuellement rencontrés : 1. Le style d'icône de changement est bloqué, ce qui empêche l'affichage de l'icône. 2. L'animation de la largeur de la lampe de poche est souvent perdue. 3. L'application Douyin ne peut pas télécharger de vidéos. 10 secondes. 5. Parfois, le téléphone ne peut pas être connecté et l'écran est noir. 6. Forte fièvre.

Merci aux internautes Ji Yinkesi, xxx_x, aux tomates frites, à Terrence et aux pilons de poulet épicés pour avoir soumis des indices ! Selon les informations du 27 juillet, Apple a réédité aujourd'hui la mise à jour iOS/iPadOS 18 Beta 4 pour les développeurs. Le numéro de version interne est passé de 22A5316j à 22A5316k. La différence entre les deux mises à jour de la version Beta 4 n'est actuellement pas claire. Les développeurs enregistrés peuvent ouvrir l'application « Paramètres », accéder à la section « Mise à jour du logiciel », cliquer sur l'option « Mise à jour bêta », puis basculer les paramètres bêta du développeur iOS18/iPadOS18 pour sélectionner la version bêta. Le téléchargement et l'installation de la version bêta nécessitent un identifiant Apple associé à un compte développeur. Signalé le 24 juillet, iO

Selon l'actualité du 31 juillet, Apple a publié hier (30 juillet) un communiqué de presse annonçant le lancement d'un nouveau package Swift open source (swift-homomorphic-encryption) permettant le cryptage homomorphe dans le langage de programmation Swift. Remarque : Le chiffrement homomorphe (HE) fait référence à un algorithme de chiffrement qui satisfait aux propriétés d'opération homomorphe du texte chiffré. Autrement dit, une fois les données chiffrées de manière homomorphe, des calculs spécifiques sont effectués sur le texte chiffré et les résultats de calcul du texte chiffré obtenus sont traités en même temps. Le texte en clair après le décryptage de l'état équivaut à effectuer directement le même calcul sur les données en texte en clair, obtenant ainsi « l'invisibilité » des données. La technologie de cryptage homomorphe peut calculer les données cryptées sans divulguer les données non cryptées sous-jacentes au processus opérationnel.

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

Selon l'actualité du 1er juin, le média technologique AppleInsider a publié aujourd'hui un article de blog indiquant qu'Apple lancerait une nouvelle fonction de navigation « Scènes » pour l'extension d'application « Freeform » dans le système iOS18 et ajouterait de nouvelles options d'alignement des objets. Introduction à l'application « Wubianji » Tout d'abord, présentons brièvement l'application « Wubianji ». L'application sera lancée en 2022 et a actuellement lancé les versions iOS, iPadOS, macOS15 et visionOS. L’introduction officielle d’Apple est la suivante : « Boundless Notes » est un excellent outil pour transformer l’inspiration en réalité. Esquissez des projets, concevez des tableaux d'ambiance ou lancez un brainstorming sur un canevas flexible prenant en charge presque tous les types de fichiers. Avec iCloud, tous vos tableaux

[Cliquez ici pour accéder directement au didacticiel de mise à niveau] Selon les informations du 8 mai, Apple a proposé aujourd'hui la mise à jour iOS17.5RC (numéro de version interne : 21F79) aux utilisateurs d'iPhone. Cette mise à jour est effectuée 70 jours après la dernière version. Comment mettre à niveau la version de développement iOS/iPadOS/watchOS/macOS et la version bêta publique ? Pour mettre à niveau la version préliminaire du développeur iOS/iPadOS17 et la version bêta publique, vous pouvez vous référer à l'expérience partagée par vos amis : Experience Post 1||Experience Post 2||Experience Post 3||Experience Post 4. À partir de iOS/iPadOS 16.4 Developer Preview Beta 1, vous devez vous inscrire au programme pour développeurs Apple. Après l'inscription, ouvrez le système [Paramètres] [Mise à jour du logiciel] pour voir l'option de mise à niveau. Veuillez noter que votre iPhone ou IP

Merci aux internautes Spicy Chicken Leg Burger, Soft Media New Friends 2092483, Handwriting Past, DingHao, Xiaoxing_14, Wowotou Eat Big Kou, Feiying Q, Soft Media New Friends 2168428, Slades, Aaron212, Happy Little Hedgehog, Little Earl, Clues for the small chat de lait qui mange du poisson ! [Cliquez ici pour accéder directement au didacticiel de mise à niveau] Selon les informations du 24 juillet, Apple a proposé aujourd'hui la mise à jour Beta4 de la version préliminaire du développeur iOS/iPadOS18 (numéro de version interne : 22A5316j) aux utilisateurs d'iPhone et d'iPad. Cette mise à jour est 15 jours après la mise à jour. dernière version. Carplay Wallpaper Apple a ajouté des fonds d'écran à CarPlay, couvrant les modes clair et sombre. Son style de fond d'écran est similaire à celui de l'iPhone.

Lors de la finale de la Coupe d'Europe qui vient de se terminer, avez-vous encouragé follement l'équipe que vous souteniez ? Lors des prochains Jeux Olympiques de Paris, avez-vous également hâte de capturer parfaitement les moments forts de chaque événement ? Parmi eux, disposer d’un équipement de visualisation de haute qualité est crucial. Le projecteur Haqu K2 est à juste titre un bon choix pour visionner des jeux en raison de son coût élevé et de ses excellentes performances. Il offre non seulement une luminosité élevée et une qualité d'image claire, mais offre également une expérience visuelle immersive, donnant l'impression que chaque moment passionnant du jeu est à portée de main. Etes-vous déjà attiré par un tel appareil ? Cela vous permettra certainement de profiter de la passion et des rêves des Jeux Olympiques chez vous. Le point fort le plus intime du Haqu K2 est son super réglage de l'angle à 210°, qui permet de regarder des films facilement, que ce soit au plafond ou au mur.
