微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

cordova – tors build for orsay not working

我用TOAST项目为智能电视创建了一个应用程序.在开发过程中,我用tizen模拟器和tizen工作室测试一切,一切都很好.

完成开发后,我尝试在orsay TV和orsay模拟器上运行应用程序,不幸的是在该平台上存在很多问题.我修复了设计中的一些问题,但我无法解决主要问题.

当我运行应用程序时,控制台中有一行说:deviceready在5秒后没有触发.而且我不能使用任何TOAST api功能.

我创建一个空项目,并完成此页面所说的内容:https://github.com/Samsung/cordova-plugin-toast#prepare-to-start

但我又得到了同样的错误.请帮我.

这是日志:

cordova / platform:orsay bootstrap BEGIN cordova.js:1365
为NetworkStatus cordova.js添加代理:887
为控制台cordova.js添加代理:887
为Device cordova.js添加代理:887
为Globalization cordova.js添加代理:887
cordova / platform:orsay bootstrap END cordova.js:1460
为toast.inputdevice cordova.js添加代理:1880
    返回Window cordova.js:1880
为toast.tvwindow cordova.js添加代理:1880
    返回Window cordova.js:1880
为toast.tvchannel cordova.js添加代理:1880
为toast.tvaudiocontrol cordova.js添加代理:1880
为toast.drminfo cordova.js添加代理:1880
为toast.application cordova.js添加代理:1880
为toast.Media cordova.js添加代理:1880
无法加载资源:无法读取资源表单已解密的文件文件:///home/smarttv/Apps/xThreeApp/cordova_plugins.js
5秒后,deviceready没有开火. cordova.js:1880
频道未被解雇:onNativeReady cordova.js:1880
频道未被解雇:onCordovaReady cordova.js:1880
频道未被解雇:onCordovaConnectionReady cordova.js:1880
未被解雇的频道:onCordovaInfoReady cordova.js:1880

enter image description here

更新:

好的,我发现了两件事:

>当我使用Debug As / Samsung Smart Tv Emulator在模拟器上运行应用程序时,devicereaday不会被触发,但如果我在模拟器中关闭应用程序并再次从模拟器中的应用程序页面打开它,则deviceready事件将完美运行
>即使有上述技巧,当我导航到第二页时,设备再次无法启动! (即使我尝试导航到当前页面,但第二次尝试将无法触发deviceready事件)

我尝试了很多方法来导航到第二页,但都有相同的结果. (我使用window.location.href = url;和window.location.replace(url);等方法…

解决方法

好吧,我回答自己,这是cordova.js中的一个错误

要解决此问题,您可以将bootstrap函数更改为cordova.js中的以下源代码:

bootstrap: function() {
    console.log('cordova/platform: orsay bootstrap BEGIN');

    var modulemapper = require('cordova/modulemapper');
    var channel = require('cordova/channel');
    var SEF = require('cordova/plugin/SEF');
    var isWebapisLoaded = false;
    var isOnShowEventFire = false;

    modulemapper.clobbers('cordova/exec/proxy','cordova.commandProxy');

    var fireNativeReadyEvent = function() {
        if(isWebapisLoaded && isOnShowEventFire) {
            channel.onNativeReady.fire();
        }
    };

    for (var k in define.moduleMap) {
        if (/cordova.*\/proxy/.exec(k)) {
            require(k);
        }
        if (/cordova.*\/symbols/.exec(k)) {
            require(k);
        }
    }

    var head = document.getElementsByTagName('head')[0];
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = '$MANAGER_WIDGET/Common/webapi/1.0/webapis.js';
    script.onload = function() {
        isWebapisLoaded = true;
        fireNativeReadyEvent();
        require('cordova/plugin/ime-via-input');
    };
    head.appendChild(script);

    window.onPause = function () {
        channel.onPause.fire();
    };

    window.onResume = function () {
        channel.onResume.fire();
    };

    window.onHide = function() {
        localStorage.clear();
    };

    window.addEventListener('load',function () {
        var AppCommonPlugin = null;
        var NNaviPlugin = null;

        window.onShow = function () {
            localStorage.setItem('showEventFlag','true');
            settingInfo();
        };

        if(localStorage.getItem('showEventFlag') == 'true') {
            settingInfo();
        }

        if(window.curWidget && typeof window.curWidget.setPreference == 'function') {
            console.log('window.curWidget');
            window.curWidget.setPreference('ready','true');
        }
    });

    window.addEventListener('unload',function () {
        SEF.close();
    });

    window.addEventListener('keydown',function (e) {
        switch(e.keyCode) {
            case 88: // RETURN key
                // default action disabled.
                // Calling 'setPreference('return','true')' is needed explicitly to exit the application
                e.preventDefault();
                break;
            case 45: // EXIT key
                // NOTHING to prevent.
                break;
        }
    });

    function settingInfo() {
        try {
            AppCommonPlugin = SEF.get('AppCommon');
        }
        catch(e) {
            Error(e);
        }
        AppCommonPlugin.Execute('UnregisterAllKey');
        AppCommonPlugin.Execute('RegisterKey',29460); //up
        AppCommonPlugin.Execute('RegisterKey',29461); //down
        AppCommonPlugin.Execute('RegisterKey',4); //left
        AppCommonPlugin.Execute('RegisterKey',5); //right
        AppCommonPlugin.Execute('RegisterKey',29443); //enter
        AppCommonPlugin.Execute('RegisterKey',88); // return

        try {
            NNaviPlugin = SEF.get('NNavi');
        }
        catch(e) {
            Error(e);
        }

        NNaviPlugin.Execute('SetBannerState',2);
        isOnShowEventFire = true;
        fireNativeReadyEvent();
    }

    // End of bootstrap
    console.log('cordova/platform: orsay bootstrap END');
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐