OStack程序员社区-中国程序员成长平台

标题: javascript - 如何从 iOS cordova 插件调用 ionic 1 方法 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 04:34
标题: javascript - 如何从 iOS cordova 插件调用 ionic 1 方法

我为我的 ionic-1 应用程序(iOS 平台)创建了一个 cordova-plugin。我想从我的 objective-c 文件中的 native iOs 类调用我的 ionic 项目的 js 文件中创建的方法>cordova-plugin.

** 请帮助了解我如何实现这一目标? **



Best Answer-推荐答案


您应该使用在 jsnative 之间制作事件协议(protocol)的 cordova channel。您可以从 cordova-plugin-inappbrowser 获取示例

链接的简要说明

在 javascript 代码中

导入 channel 库

var channel = require('cordova/channel');

创建以事件名称命名的 channel

function InAppBrowser () {
    this.channels = {
        'loadstart': channel.create('loadstart'),
        'loadstop': channel.create('loadstop'),
        'loaderror': channel.create('loaderror'),
        'exit': channel.create('exit'),
        'customscheme': channel.create('customscheme')
    };
}

添加和删除监听函数

InAppBrowser.prototype = {
    addEventListener: function (eventname, f) {
        if (eventname in this.channels) {
            this.channels[eventname].subscribe(f);
        }
    },
    removeEventListener: function (eventname, f) {
        if (eventname in this.channels) {
            this.channels[eventname].unsubscribe(f);
        }
    },
};

在 init 中注册回调(可选)。您也可以在您的应用中执行此操作。

for (var callbackName in callbacks) {
    iab.addEventListener(callbackName, callbacks[callbackName]);
}

在 native 代码中

触发事件。

CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary{@"type""loadstart", @"url":[url absoluteString]}];

[pluginResult setKeepCallback:[NSNumber numberWithBool:YES]];

[self.commandDelegate sendPluginResult:pluginResult callbackId:self.callbackId];

关于javascript - 如何从 iOS cordova 插件调用 ionic 1 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51704934/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4