목차
回复内容:
웹 프론트엔드 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 Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

업데이트 | 해커가 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이 C를 원하는 영역에서 좋은 성능을 발휘하도록 집중했습니다.

Google Pixel 9 스마트폰은 7년 업데이트 약속에도 불구하고 Android 15와 함께 출시되지 않습니다. Google Pixel 9 스마트폰은 7년 업데이트 약속에도 불구하고 Android 15와 함께 출시되지 않습니다. Aug 01, 2024 pm 02:56 PM

Pixel 9 시리즈는 8월 13일 출시로 예정되어 거의 다가왔습니다. 최근 소문에 따르면 Pixel 9, Pixel 9 Pro 및 Pixel 9 Pro XL은 128GB의 스토리지부터 시작하여 Pixel 8 및 Pixel 8 Pro(Amazon에서 현재 $749)를 미러링할 예정입니다.

Google Pixel 9 Pro XL은 데스크톱 모드로 테스트되었습니다. Google Pixel 9 Pro XL은 데스크톱 모드로 테스트되었습니다. Aug 29, 2024 pm 01:09 PM

Google은 Pixel 8 시리즈에 DisplayPort 대체 모드를 도입했으며 새로 출시된 Pixel 9 라인업에 포함되어 있습니다. 주로 연결된 화면으로 스마트폰 디스플레이를 미러링할 수 있도록 하기 위해 존재하지만 데스크탑에서도 사용할 수 있습니다.

새로운 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 베타 2.1에 숨겨둔 새로운 Android 데스크톱 모드를 시연한 지 몇 달이 지났습니다. Pixel 8 및 Pixel 8에 대한 DisplayPort Alt 모드 지원을 추가하는 Google의 뒤를 이어 뜨거워졌습니다.

Google은 대부분의 사용자에게 AI Test Kitchen 및 Imagen 3를 공개합니다. Google은 대부분의 사용자에게 AI Test Kitchen 및 Imagen 3를 공개합니다. Sep 12, 2024 pm 12:17 PM

사용자가 가지고 놀 수 있는 AI 디자인 도구 모음이 포함된 Google의 AI 테스트 키친은 이제 전 세계 100개가 넘는 국가의 사용자에게 공개되었습니다. 이번 움직임은 전 세계 많은 사람들이 Imagen 3, Googl을 사용할 수 있게 된 최초의 사례입니다.

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에서 사전 주문)과 동일하지만 이름에서 알 수 있듯이 화면이 더 큽니다. 두 전자

Google은 호기심 많은 디자인 덕분에 Pixel 9 Pro Fold가 공식 무선 충전 액세서리와 호환되지 않음을 확인했습니다. Google은 호기심 많은 디자인 덕분에 Pixel 9 Pro Fold가 공식 무선 충전 액세서리와 호환되지 않음을 확인했습니다. Sep 01, 2024 am 06:31 AM

Pixel 9 Pro Fold는 Google의 초기 폴더블 부문의 볼트 페이스와 유사합니다. 실제로 Pixel 9 Pro Fold와 Pixel Fold의 차이점은 전자가 OnePlus Open(A에서 $1,399.99)과 더 많이 비교되었다는 점입니다.

See all articles