本文档是 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.add
MockSDKNativeApi
类中的方法www/index.html
www/moSDKJsApi.js, www/index.html
MOSDKNativeApi.swift
RPGWebView.swift