本文档是 iOS 平台上,用 RPGMaker
引擎制作的游戏,如何接入 iOS 原生 SDK 的框架与示例
阅读文档前,先下载配套的项目 rpgsample
使用本项目有一些前置条件,请事先确认:
www目录所示├── AbsSDKNativeApi.swift
├── ContentView.swift
├── Info.plist
├── MOSDKNativeApi.swift
├── MockSDKNativeApi.swift
├── RPGWebView.swift
├── rpgsampleApp.swift
└── www
├── index.html
├── moSDKJsApi.js
└── mockSDKJsApi.js
简要说明:
www:模拟测试游戏**NativeApi.swift:封装了 SDK
的方法,便于游戏调用和回调RPGWebView.swift:加载本地网页,并关联原生代码与 js
代码除了 www 目录下的内容,都可以称为 “原生代码”
本项目使用 WKScriptMessageHandler 和
WKWebView.evaluateJavaScript
提供的机制完成原生代码与游戏代码的通信:
以下以一个名为 mockSDK 的 SDK 来说明具体过程:
www目录下,并且完成加载实现,如RPGWebView.makeUIView方法所示www/index.html中增加功能入口,如methodString, methodArgv等标签所示
mockSDKJsApi 类,此类封装了 js
调用原生接口的方式,注意
postMessage实现writeMessage实现postMessage调用,其中的callback方法待实现callback,此方法应能通过 html 中顶层对象
window
找到,它可以是顶层方法,也可以是对象方法,示例中是对象方法MockSDKNativeApi ,此类封装了
mockSDK
提供的方法,是其方法的直接调用和回调之处,js 回调的实现与 SDK
回调的方式应互相匹配MockSDKNativeApi 注入到 window 中
WKWebView.configuration.userContentController.addMockSDKNativeApi类中的方法www/index.htmlwww/moSDKJsApi.js, www/index.htmlMOSDKNativeApi.swiftRPGWebView.swift