objective-c invoke javascript object and function

GenAI Agent网站集成:全栈架构与上下文管理实战 GenAI Agent 不是简单调用大模型API,而是具备工具调用、多步推理和短期记忆的智能体,其本质是重构用户交互链路。它通过分层架构实现安全可控的业务编排,解决传统API集成中密钥泄露、上下文失控与逻辑碎片化等核心问题。关键技术价值在于将模糊查询转化为结构化任务流,并依托Python网关层完成异构系统胶合与流式响应治理。典型应用场景包括智慧图书馆文献精准检索、政务材料一键生成及教育SaaS课程推荐等。本文聚焦生产级落地中的三层隔离架构、动态工具注册与三级上下文压缩方案,直击context window 阅读详情
 

1>.先设置委托:WebFrameLoadDelegate

 

   设置Javascript  foo 对象的值。

  1. - (void)webView:(WebView *)sender windowScriptObjectAvailable:(WebScriptObject *)windowScriptObject
  2. {
  3.     NSString *myFoo = @"zczhustring";
  4.     [windowScriptObject setValue:myFoo forKey:@"foo"]; //foo is javascript varible
  5. }

2.调用Javascript函数function addImage(string){}

  1. 调用javascript函数
  2. -(void)callJavaScriptFun
  3. {
  4.     WebView *myWebView;
  5.     WebScriptObject * win = [myWebView windowScriptObject];
  6.     NSArray *args = [NSArray arrayWithObjects:@"zzczzc",nil]; //arguments,参数
  7.     //函数调用不返回
  8.     [win callWebScriptMethod:@"addImage" withArguments:args];
  9.     //函数调用后返回
  10.     id rvalue= [win evaluateWebScript:@"addImage('zzczzc')"];
  11.     NSLog(@"%@", rvalue);
  12. }

3>.JavaScript invoke objectiove-c method

javascript调用自己的一个函数:-(id)setJSvalue:(NSString *)str;

 

  1. a)
  2. - (void)webView:(WebView *)sender windowScriptObjectAvailable:(WebScriptObject *)windowScriptObject
  3. {
  4.       //set method key 
  5.      [windowScriptObject setValue:self forKey:@"setJSvalue"];
  6. }

 
    1. b)在主线程类中重载如下函数
    2. ///重载 
    3. + (BOOL)isSelectorExcludedFromWebScript:(SEL)selector
    4. { 
    5.     return NO; 
    6. }
    7. + (BOOL)isKeyExcludedFromWebScript:(const char *)property {
    8.     if (strcmp(property, "name") == 0) {
    9.         return NO;
    10.     }
    11.     return YES;
    12. }
    13. + (NSString *)webScriptNameForSelector:(SEL)sel
    14. {
    15.     if (sel == @selector(bar:))
    16.         return @"bar";
    17.     if (sel == @selector(setJSvalue:))
    18.         return @"setJSvalue";
    19.     return nil;
    20. }
    2>.javascript中如此调用:
  1. document.write("call  objective-c function<br>");
  2. var myjs = window.setJSvalue;
  3. string = "argument";
  4. var name = myjs.setJSvalue_(string);
  5. document.write("call  objective-c function<br>");

最后:objective-c 与 javascript 函数对应规则:

Objective –C 函数                    在javascript 调用函数名应该为

Objective-C selector

Default script name for selector

setFlag:

setFlag_

setFlag:forKey:withAttributes:

setFlag_forKey_withAttributes_

propertiesForExample_Object:

propertiesForExample$_Object_

set_$_forKey:withDictionary:

set$_$$_$_forKey_withDictionary_

 

余下问题:

    如果要调用其他类的方法,却不成功。待续。。。

 

CodeGemma 7B为何力压CodeLLaMa 13B?轻量代码模型的工程真相 代码大模型的核心价值不在于参数规模,而在于任务对齐、数据纯度与推理效率。从基础概念看,轻量级代码专用模型通过AST清洗、语法感知位置编码和稀疏注意力机制,在Python和JavaScript等主流语言上实现更高生成准确率与更低延迟;其技术原理聚焦于‘精准投喂’(如FIM填空训练)与‘定向优化’(如语言路由输出头),显著提升Pylint合规率与JS内存错误诊断能力;工程价值体现在本地可部署、低显存占用、高首token响应速度,适用于VSCode集成、离线编程辅助与跨语言桥接等真实开发场景;本文深入解析Code 阅读详情

相关推荐

桌面应用集成小程序:基于Electron与WebView2的架构实践

小程序容器技术是一种将轻量级、动态化的应用运行环境嵌入宿主应用的技术方案。其核心原理是通过一个隔离的JavaScript沙箱环境来解析和执行小程序的逻辑与渲染指令,实现应用的快速加载与安全执行。这项技术的核心价值在于为传统桌面应用带来了强大的动态扩展能力和生态集成能力,有效解决了功能迭代慢、跨平台适配成本高和生态封闭的痛点。在应用场景上,它特别适用于需要频繁更新业务模块的企业级软件、工具类应用以及创意生产平台。本文以Electron桌面框架和Microsoft Edge WebView2为核心,详细阐述了如

weixin_30493401的博客 368

JACTF misc wp

0x00 该死的温柔 查看属性,guess,呃呃,看了大佬博客,才知道是guess隐写,在kali上用outguess还原即可。 先安装一下outguess, kail终端命令输入git clone https://github.com/crorvick/outguess, 安装包随即下载到文件夹。双击打开文件夹,右键点击空白区域选终端打开。随后输入以下命令./configure &&am...

ChanCherry的博客 4641

Unity开源WebView集成实战:从原理到避坑指南

WebView作为跨平台应用开发中的关键技术,其核心原理是通过桥接原生浏览器组件实现网页内容的嵌入式渲染。在Unity引擎中,WebView技术为游戏和应用提供了动态内容展示、热更新和复杂交互的能力,尤其适用于内嵌公告、活动页面、用户协议及第三方服务接入等场景。开源方案如gree/unity-webview,通过封装Android的WebKit和iOS的WKWebView,实现了高性能的原生渲染,同时支持C#与JavaScript的双向通信。开发者需重点处理Android的权限配置、HTTP明文流量限制,以

weixin_33843409的博客 449

KeepingYouAwake 1.6.7beta1 版本解读:外接显示器与菜单栏图标修复详解

KeepingYouAwake 是一款经典的 macOS 菜单栏小工具,用于在用户需要时阻止 Mac 自动进入睡眠。v1.6.7beta1 是 1.6.7 正式版发布前的预发布版本,其核心改动集中在「连接外接显示器时自动激活」高级设置的可靠性修复、URL Scheme 激活/停用后菜单栏图标状态同步,以及针对 macOS 26 Tahoe 的设置窗口交互改进。本文将以该版本说明为主线,结合 Kee

gitblog_00777的博客 196

JSBridge原理与实现:打通Hybrid App中原生与H5的通信桥梁

在移动应用开发中,混合开发(Hybrid Development)结合了原生应用与Web技术的优势,成为平衡性能与开发效率的主流方案。其核心原理在于通过WebView容器加载H5页面,实现跨平台代码复用与快速迭代。然而,WebView的沙盒机制限制了H5与原生系统的直接交互,这便催生了JSBridge这一关键技术。JSBridge本质上是一套通信协议栈,它基于URL Scheme拦截或JavaScriptCore/WebKit注入等底层机制,建立双向通信通道,使JavaScript能够调用原生功能(如摄像头

weixin_30681615的博客 539

02-Cesium-实现天地图标记

首先天地图申请token,然后Cesium-实现天地图标记详细说明

m0_62785037的博客 1171

Electron 中的原生代码(Native Code):从零编写一个可在 Electron 中运行的 Node.js 原生插件

Electron 最具威力的特性之一,是能在同一应用里把 Web 技术与原生代码结合起来——既可以用 JavaScript/HTML/CSS 构建界面,也可以把计算密集的逻辑、乃至“偶尔需要的原生用户界面”下沉到 C++、Rust 等原生语言实现。本指南以仓库 [docs/tutorial/native-code-and-electron.md](https://link.gitcode.com/

gitblog_00016的博客 623

「Unity3D」Addressable版本冲突解析:SBP与Addressables兼容性问题实战指南

本文深入解析Unity3D中Addressable与SBP(Scriptable Build Pipeline)版本冲突问题,提供实战解决方案。当遇到「Build Task CreateBuiltInShadersBundle failed」错误时,可通过版本匹配、临时资源引用或构建参数调整解决。文章详细分析兼容性原理,并给出版本组合指南与最佳实践,帮助开发者高效处理资源构建问题。

weixin_29001683的博客 410

艾尔登法环存档编辑器 ER-Save-Editor:从零改 SteamID、加武器与属性的完整教程

ER-Save-Editor 是一款用 Rust 编写的图形化艾尔登法环(Elden Ring)存档编辑器,直接读写 PC 的 `.sl2` 存档与 PlayStation 经 Save Wizard 导出的 `.txt` 存档,支持修改角色属性、卢恩、装备、批量加物与 SteamID。它适合想做 build、迁移进度或恢复存档的单机玩家。 ## 功能一览 一句话概括它能做的五件事:改身份(S

gitblog_00918的博客 324

Pixel 6 Pro刷Android 13变砖自救指南:fastboot全分区擦除与手动刷入教程

本文提供了一份详细的Pixel 6 Pro在Android 13升级过程中变砖后的自救指南。针对因super分区锁死或动态分区异常导致的无法启动问题,文章核心介绍了通过fastboot命令手动擦除关键分区并逐一刷入官方镜像的完整救砖流程,帮助用户实现系统重建与恢复。

weixin_29208327的博客 373

AUTOSAR—TM模块介绍及使用概要

根据所要测量的场景不同,有1us16bit、1us24bit、1us32bit、100us32bit四种类型可选;TM模块在服务层,提供一些基于时间的服务功能,如测量CPU和任务的负载,周期执行一些回调函数。2、对于需要在不同时间执行不同逻辑的周期任务中,可以搭建时间状态机:参考Tm用户手册;定时器复位、获取时间宽度、定时器转换、定时器同步、繁忙等待。偏移定时器实例的参考时间,直接将定时器数值进行偏移;以1us16bit定时器类型为例,讲几个常用函数。同步两个定时器,把源定时器时间值给到目的定时器。

qq_42479987的博客 612

Unity跨平台剪切板复制:三端适配与WebGL安全策略详解

剪切板操作是应用开发中提升用户体验的基础功能,其核心原理是通过调用操作系统或浏览器的底层API实现数据交换。在跨平台开发中,不同运行环境的安全策略和API差异带来了技术挑战,尤其是WebGL平台受限于浏览器安全模型,要求操作必须由用户手势直接触发。本文聚焦Unity引擎,深入解析如何构建稳健的跨平台剪切板工具类,涵盖WebGL的W3C Clipboard API与execCommand降级方案、Android通过AndroidJavaClass调用系统服务、iOS使用Objective-C桥接等关键技术实现

weixin_30599769的博客 425

从5V降到3.3V,你的LDO到底有多烫?手把手算功耗、选散热,避开这些坑

本文详细解析了LDO在5V转3.3V电路中的发热问题,提供了精确的功耗计算公式和散热设计方法。通过对比不同封装的热阻参数和优化PCB布局,帮助工程师有效降低LDO温度,避免热保护触发。文章还探讨了替代方案的技术拐点,为电源系统优化设计提供实用指导。

weixin_30304375的博客 437

Unity跨平台长按复制UI文本:从原理到实战的完整解决方案

在Unity应用开发中,实现用户交互功能是提升体验的关键。长按复制作为一种基础交互模式,其原理在于通过事件系统检测持续的指针输入,并在达到时间阈值后触发操作。这项技术的核心价值在于打通应用内容与系统剪贴板之间的桥梁,让信息传递更高效。在聊天窗口、信息展示面板、设置页面等需要文本复用的场景中,它几乎是标配功能。本文聚焦于Unity中长按复制的实现,深入探讨了如何通过IPointerHandler接口进行可靠的事件检测,并详细解析了跨平台剪贴板写入这一技术难点,提供了覆盖Android、iOS、PC及WebGL

weixin_30887919的博客 359

Shopee App加密算法逆向实战:从libshpssdk.so到x-sap-ri的生成机制

本文详细解析了Shopee App核心加密参数x-sap-ri的生成机制。通过逆向分析libshpssdk.so动态库,揭示了其采用9套算法动态切换的复杂签名逻辑,并分享了从抓包定位、Frida动态调试到Unidbg模拟执行的全过程实战经验,为移动应用安全研究提供了完整的技术路径。

weixin_29323551的博客 1328

【无人机编队】基于matlab虚拟leader无人机编队仿真【含Matlab源码 3279期】

虚拟leader无人机编队仿真 完整代码,包运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 837

Frida主动调用实战:从Hook到操控的五大核心场景解析

在移动安全与逆向工程领域,动态插桩技术是实现应用行为分析和漏洞挖掘的关键手段。其核心原理是通过注入代码到目标进程,实现对运行时函数调用的拦截与监控。这项技术的核心价值在于,它允许安全研究人员和开发者在不修改源码的情况下,动态观察、修改甚至创造应用的执行逻辑,从而极大地提升了安全测试、协议分析和算法验证的效率。在实际应用中,动态插桩技术广泛应用于移动应用安全评估、恶意软件分析、游戏外挂检测以及物联网设备固件分析等场景。本文聚焦于Frida工具中的**主动调用**技术,深入探讨如何超越传统的被动Hook,实现对

weixin_30411239的博客 407

ARM与PC共享文件方式【samba】移植与配置

方式推荐指数适用平台优点缺点⭐⭐⭐⭐⭐全平台 (Win/Mac/Linux)兼容性最强,操作像本地文件配置稍繁琐,协议开销略大NFS⭐⭐⭐⭐Linux/Mac (Win支持一般)速度极快,CPU占用低Windows配置复杂,权限管理较难SFTP (SSH)⭐⭐⭐⭐全平台 (需客户端)安全加密,无需额外配置服务需使用FileZilla/Xftp等专用软件物理U盘⭐⭐⭐全平台无需网络,速度取决于接口需要人工插拔,不适合自动化Syncthing⭐⭐⭐⭐全平台自动同步,支持远程。

浩瀚之水的专栏 263

Tock Console 系统调用驱动详解:串口读写 Syscall 接口规范与内核实现

Console(驱动号 `0x00001`)是 Tock 嵌入式操作系统中最基础的系统调用驱动之一,它让用户态进程(process)能够通过串口(UART)收发字节。本文以 [Console 系统调用规范](https://link.gitcode.com/i/a12bc806c33b3e45e981b2b3b7db3798) 为主体,结合 [Console 胶囊实现](https://link.

gitblog_00477的博客 344

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

UniApp 开发从入门到精通

《UniApp开发从入门到精通》不仅是一份学习指南,更是一份帮助您从入门到精通的成长地图。通过系统的学习和实践,您将掌握了 UniApp 的核心知识和开发技巧,并具备了独立开发多端应用的能力。

YunWisdom 5327

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Dimina核心架构揭秘:一文读懂跨平台运行时与编译流程

想要深入了解滴滴开源的**星河小程序框架Dimina**吗?作为一套高性能的跨端小程序解决方案,Dimina通过创新的**双线程模型**和**智能编译流程**,让开发者能够用一套代码同时运行在Android、iOS、Harmony和Web四大平台。本文将为你全面解析Dimina的**核心架构设计**和**编译工作原理**,帮助你快速掌握这个强大的跨平台开发工具。 ## 📱 什么是Dimina星

gitblog_00747的博客 317

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

跨平台开发选型本质:性能、生态与团队能力的三维平衡

跨平台开发不是简单的框架对比,而是围绕性能表现、生态复用性、团队技术栈三大核心维度展开的系统性工程决策。Electron凭借Web生态无缝集成和成熟调试体验,成为快速桌面化的首选;Tauri以Rust为底座,通过原生WebView大幅降低包体积与内存开销,适合安全敏感与分发受限场景;Flutter依托Skia引擎实现高保真UI与原生级动画,但需承担平台通道开发成本;React Native则在渐进式原生融合上优势突出,尤其利于已有iOS/Android团队介入。理解各框架的编译链路本质——如Electron

weixin_33858485的博客 498

Flutter Release模式逆向实战:快照堆栈还原与动态分析技术解析

在移动应用安全与逆向工程领域,理解应用在发布(Release)模式下的内部机制是核心挑战之一。Release模式通过剥离调试符号、编译为高度优化的机器码(AOT)等方式,将应用逻辑封装为“黑盒”,显著增加了分析难度。其技术原理在于,编译器在构建阶段移除了便于人类阅读的元数据,仅保留执行必需的二进制指令和运行时数据结构。这一过程的技术价值在于保护知识产权和提升应用性能,但也为安全评估、漏洞挖掘和深度理解框架行为设置了障碍。应用场景广泛覆盖金融、社交等采用Flutter跨平台框架的各类应用安全分析。针对此,以`

weixin_33670713的博客 404

跨平台开发突破边界:从零编写Android/iOS原生模块实战指南

跨平台框架的插件生态虽能覆盖多数常规需求,但面对系统剪贴板、硬件交互、第三方SDK对接等深度定制场景,开发者必须理解原生模块这一底层能力。所谓原生模块,本质是JS线程与原生线程之间的一座双向通信桥,通过参数序列化与线程切换实现方法调用与结果回传。掌握其原理,不仅能提升跨平台应用的性能上限与系统集成能力,更能让开发者在React Native、Flutter、uni-app等框架间迁移心智模型。无论是处理蓝牙、NFC、指纹识别,还是封装支付、推送等商业SDK,原生模块都是打破框架边界的关键工具。本文从环境配置

weixin_33850890的博客 394

iLoader真相:usbmuxd在Windows上的通信冲突与排错指南

iLoader并非独立工具,而是usbmuxd在Windows平台因Apple Mobile Device Service(AMDS)资源抢占而产生的进程别名,本质反映iOS设备与PC间USB通信链路的底层协议栈故障。其原理涉及Windows服务控制管理器(SCM)、USB驱动仲裁机制及用户态/内核态设备句柄竞争;技术价值在于快速定位L1-L5分层模型中的具体断点,支撑Tauri、Bun等现代运行时安全集成iOS通信能力;典型应用场景包括企业级MDM工具开发、跨平台桌面应用直连调试、旧系统(Win7/Win

weixin_33895657的博客 341

Ling-3.0-flash-VL 采样参数调优清单:temperature、top_p、top_k 到底该怎么设

Ling-3.0-flash-VL 是面壁(inclusionAI)发布的原生多模态大模型,124B 总参数、每 token 仅激活 5.5B 参数,支持图像和视频输入,最大上下文 256K token,且默认开启思考模式。很多新手拿到模型后第一步就是"手痒"去调 temperature、top_p、top_k,结果回答质量反而变差。本文给出一份可直接照抄的采样参数调优清单:先讲清这三个参数到底管

gitblog_00060的博客 617
上一篇: JavaScript 学习-9-数组对象的方法
下一篇: save NSImage instance
nitghost
博客等级 码龄19年 32粉丝 111原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值