Plugin Functions
loadPlugin Load a Plugin
- Load a plugin
- Available in EC iOS 4.2.0+
- @param pluginName plugin name
- @return
boolean—trueon success,falseon failure
function main() { // For a plugin file named helloworldplugin2.framework, the plugin name is helloworldplugin2 let pluginName = "helloworldplugin2" let loaded = pluginLoader.loadPlugin(pluginName) if (!loaded) { loge("Failed to load plugin") return } else { logd("Plugin loaded successfully") }}
main();makeInstance Create Class Instance
- Create a class instance
- Available in EC iOS 4.2.0+
- @param pluginName plugin name
- @param clzName class name
- @returns
string—nullor empty string on success; otherwise error message
function main() { let name = "helloworldplugin2" let clzName = "Plugin1" let load = pluginLoader.loadPlugin(name) if (!load) { loge("Failed to load plugin: " + pluginLoader.getErrorMsg()) return } logd("Plugin loaded successfully {}", name) let ins = pluginLoader.makeInstance(name, clzName) if (ins == null || ins == "") { logd("Class instantiated successfully: " + clzName) } else { loge("Failed to instantiate class: " + clzName) return }}
main();getErrorMsg Error Message
- Get error message
- @return
string— non-empty string indicates an error
function main() { let name = "helloworldplugin2" let clzName = "Plugin1" let load = pluginLoader.loadPlugin(name) if (!load) { loge("Failed to load plugin: " + pluginLoader.getErrorMsg()) return } logd("Plugin loaded successfully {}", name) let ins = pluginLoader.makeInstance(name, clzName) if (ins == null || ins == "") { logd("Class instantiated successfully: " + clzName) } else { loge("Failed to instantiate class: " + clzName) return }}
main();callMethodStr Call Plugin Method (String Return)
- Call a plugin instance method that returns a string
- Available in EC iOS 4.2.0+
- @param pluginName plugin name
- @param clzName class name
- @param methodName method name (string)
- @param args argument string
- @return
string
function main() { let name = "helloworldplugin2" let clzName = "Plugin1" let load = pluginLoader.loadPlugin(name)
if (!load) { loge("Failed to load plugin: " + pluginLoader.getErrorMsg()) return } logd("Plugin loaded successfully {}", name) let ins = pluginLoader.makeInstance(name, clzName) if (ins == null || ins == "") { logd("Class instantiated successfully: " + clzName) } else { loge("Failed to instantiate class: " + clzName) return } let args = JSON.stringify({"a": 1, "b": "" + new Date()}) let rs = pluginLoader.callMethodStr(name, clzName, "testMethod", args) logd("testMethod result " + rs)}
main();callMethodData Call Instance Method
- Call an instance method that returns string data
- Available in EC iOS 4.2.0+
- @param pluginName plugin name
- @param clzName class name
- @param methodName method name (string)
- @param data Swift
Dataobject (byte array) - @return
string
function main() { let name = "helloworldplugin2" let clzName = "Plugin1" let load = pluginLoader.loadPlugin(name) if (!load) { loge("Failed to load plugin: " + pluginLoader.getErrorMsg()) return } logd("Plugin loaded successfully {}", name) let ins = pluginLoader.makeInstance(name, clzName) if (ins == null || ins == "") { logd("Class instantiated successfully: " + clzName) } else { loge("Failed to instantiate class: " + clzName) return } let args = JSON.stringify({"a": 1, "b": "" + new Date()}) let rs = pluginLoader.callMethodReturnData(name, clzName, "testMethod", args) logd("testMethod result " + rs)
let anyR = pluginLoader.callMethodData(name, clzName, "testMethod", rs) logd("callMethodData result " + anyR)}
main();callMethodReturnData Call Instance Method
- Call a plugin instance method
- Available in EC iOS 4.2.0+
- @param pluginName plugin name
- @param clzName class name
- @param methodName method name (string)
- @param args argument string
- @return Data — Swift
Dataobject (byte array)
function main() { let name = "helloworldplugin2" let clzName = "Plugin1" let load = pluginLoader.loadPlugin(name) if (!load) { loge("Failed to load plugin: " + pluginLoader.getErrorMsg()) return } logd("Plugin loaded successfully {}", name) let ins = pluginLoader.makeInstance(name, clzName) if (ins == null || ins == "") { logd("Class instantiated successfully: " + clzName) } else { loge("Failed to instantiate class: " + clzName) return } let args = JSON.stringify({"a": 1, "b": "" + new Date()}) let rs = pluginLoader.callMethodReturnData(name, clzName, "testMethod", args) logd("testMethod result " + rs)
let anyR = pluginLoader.callMethodData(name, clzName, "testMethod", rs) logd("callMethodData result " + anyR)}
main();callMethodAny Call Instance Method
- Call a plugin method with Any parameters and return value
- Available in EC iOS 4.2.0+
- @param pluginName plugin name
- @param clzName class name
- @param methodName method name (string)
- @param data argument of any type
- @return Any — Swift
Anyobject; any JS type
function main() { let name = "helloworldplugin2" let clzName = "Plugin1" let load = pluginLoader.loadPlugin(name) if (!load) { loge("Failed to load plugin: " + pluginLoader.getErrorMsg()) return } logd("Plugin loaded successfully {}", name) let ins = pluginLoader.makeInstance(name, clzName) if (ins == null || ins == "") { logd("Class instantiated successfully: " + clzName) } else { loge("Failed to instantiate class: " + clzName) return } let args = JSON.stringify({"a": 1, "b": "" + new Date()}) let rs = pluginLoader.callMethodAny(name, clzName, "testMethod", args) logd("callMethodAny result " + rs)
logd("Starting screenshot Any type test...")
setComputeMode(1) let img1 = image.captureFullScreen(); logd(img1)
// Test 1 let uiimage = image.autoImageToUIImage(img1) logd("autoImageToUIImage uiimage " + uiimage) let x = pluginLoader.callMethodAny(name, clzName, "testMethod", uiimage) logd(x) image.recycle(img1)
let img2 = image.captureFullScreenUIImage({}) let xX = pluginLoader.callMethodAny(name, clzName, "testMethod", img2) logd(xX)
let au = image.uiimageToAutoImage(uiimage) logd("au " + au)
// Save to file image.saveTo(au, file.getSandBoxFilePath("a.jpg")) image.recycle(au) image.recycle(img2)
}
main();readBundleFile Read Plugin File
- Read a file bundled in the plugin
- Available in EC iOS 4.2.0+
- @param pluginName plugin name
- @param key file name without extension
- @param ext file extension without leading
. - @return
stringfile content
function main() { let name = "helloworldplugin2" let clzName = "Plugin1" let load = pluginLoader.loadPlugin(name) if (!load) { loge("Failed to load plugin: " + pluginLoader.getErrorMsg()) return } logd("Plugin loaded successfully {}", name) logd("Reading test.txt from plugin bundle") let ins = pluginLoader.readBundleFile(name, "test", "txt") logd("readBundleFile result " + ins)}
main();copyBundleFile Copy Plugin File to Path
- Copy a plugin file to a destination path
- Available in EC iOS 4.2.0+
- @param pluginName plugin name
- @param key file name without extension
- @param ext file extension without leading
. - @param dest destination file path
- @return
bool—trueon success
function main() { let name = "helloworldplugin2" let clzName = "Plugin1" let load = pluginLoader.loadPlugin(name) if (!load) { loge("Failed to load plugin: " + pluginLoader.getErrorMsg()) return } logd("Plugin loaded successfully {}", name) let dest = file.getSandBoxFilePath("a.txt") logd("dest" + dest) logd("Copying test.txt to " + dest) let ins = pluginLoader.copyBundleFile(name, "test", "txt", dest) logd("copyBundleFile result " + ins)}
main();