• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

javascript - 将 socket.io 加载到 iOS 的 JavaScriptCore

[复制链接]
菜鸟教程小白 发表于 2022-12-11 19:05:41 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在编写一个从 Javascript 文件调用代码的 iOS/JavaScriptCore 应用程序。我的 Javascript 代码依赖于通过导入 socket.io.js 创建的 'io' 变量。从 HTML 文件加载 Javascript 时一切正常,但是当我将 socket.io.js 加载到 JavaScriptCore 时,未定义 io 变量并且我自己的 Javascript 无法运行。

我的 JSCore 代码如下所示...

NSString *socketPath = [[NSBundle mainBundle] pathForResource"socket.io"ofType"js"];
NSString *socketJS = [NSString stringWithContentsOfFile:socketPath encoding:NSUTF8StringEncoding error:nil];
JSValue *socketEval = [上下文评估脚本:socketJS];

NSString *arPath = [[NSBundle mainBundle] pathForResource"arFunctions"ofType"js"];
NSString *arJS = [NSString stringWithContentsOfFile:arPath encoding:NSUTF8StringEncoding error:nil];
JSValue *arEval = [上下文评估脚本:arJS];

JSValue *function = context[@"connectToServer"];
JSValue *result = [函数 callWithArguments:nil];

当 evaluateScript 在导入的 socket.io 文件上运行时,为上下文定义的异常处理程序返回这些错误... TypeError:未定义不是对象(评估“Object.prototype”) 运行上下文 webpack_require webpack_require webpack_require webpackUniversalModuleDefinition

connectToServer 函数失败,因为它期望已定义 io 变量。任何人都知道为什么当我在 socket.io.js 上调用 evaluateScript 时没有在上下文中创建 io 变量?在评估 runInContext 和 webpackUniversalModuleDefinition 时,socket.io 似乎缺少预期的定义或其他资源,但我正在以与我的 HTML 文件中相同的顺序加载完全相同的 Javascript 文件。我在这里错过了什么?

我正在为 iOS 11 在 macOS High Sierra 上开发 Xcode 9。

谢谢!



Best Answer-推荐答案


在将工作的 JavaScriptCore 代码迁移到 High Sierra 时,我可能遇到了同样的问题。

在我的情况下,问题来 self 对 -[NSFileManager enumeratorAtURL: includesPropertiesForKeys: options: errorHandler:] 的不知情依赖,它返回了一个根据 url 的路径对其内容进行排序的枚举器。这在 macOS 10.12 中曾经是这种情况,但在 10.13 中似乎并非如此,其中排序似乎由某些未知的文件系统属性决定。

关于javascript - 将 socket.io 加载到 iOS 的 JavaScriptCore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46941643/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap