Cordova 1.9和本机控件插件兼容性

时间:2012-07-17 15:10:39

标签: javascript cordova

我看到原版控件插件在版本1.6之前的cordova / phonegao上工作正常。但是我不能再使用这段代码了解它:

newLoc = location.href.substring(0, location.href.lastIndexOf("/") + 1);
// Initializating TabBar
nativeControls = window.plugins.nativeControls;
nativeControls.createTabBar();
// Back Button
nativeControls.createTabBarItem("page1", "Page 1", "www/images/pound.png", {
    "onSelect": function() {
        $.mobile.changePage("#page1", {
            transition: 'reverse slide'
        });
        nativeControls.setNavBarTitle("Page 1");
        nativeControls.selectTabBarItem("page1");
        selectedTabBarItem = "page1";
    }
});
// Home tab
nativeControls.createTabBarItem("page2", "Page 2", "www/images/pound.png", {
    "onSelect": function() {
        if (selectedTabBarItem == "page1") {
            $.mobile.changePage("#page2", {
                transition: 'slide'
            });
        } else {
            $.mobile.changePage("#page2", {
                transition: 'reverse slide'
            });
        }
        nativeControls.setNavBarTitle("Page 2");
        nativeControls.selectTabBarItem("page2");
        selectedTabBarItem = "page2";
    }
});
// About tab
nativeControls.createTabBarItem("page3", "Page 3", "www/images/question.png", {
    "onSelect": function() {
        $.mobile.changePage("#page3", {
            transition: 'slide'
        });
        nativeControls.setNavBarTitle("Page 3");
        nativeControls.selectTabBarItem("page3");
        selectedTabBarItem = "page3";
    }
});
// Compile the TabBar
nativeControls.showTabBar();
nativeControls.showTabBarItems("page1", "page2", "page3");
selectedTabBarItem = "page1";
nativeControls.selectTabBarItem("page1");
// Setup NavBar
nativeControls.createNavBar();
nativeControls.setNavBarTitle("Page 1");
nativeControls.setupLeftNavButton("?", "", "onLeftNavButton");
//nativeControls.hideLeftNavButton();
nativeControls.setupRightNavButton("About", "", "onRightNavButton");
nativeControls.showNavBar();
}

查看js文件,似乎现在需要cordova.exec();

有人搞定了吗? 插件iOS和iPhone有什么区别?

2 个答案:

答案 0 :(得分:2)

错误的原因是Cordova不再支持window.plugins

解决方案:

修改您的调用脚本,如下所示(可能在您的onDeviceReady()函数中 - 如果您使用的话,这可能在controls.js文件中:

// nativeControls = window.plugins.nativeControls; // get rid of (or comment out)
   nativeControls = new NativeControls(); // use this line instead

修复并使用Cordova 2.0: - )

希望有所帮助

附录:实际上这只会让你分道扬 - - 你仍然需要编辑xCode文件NativeControls.m

答案 1 :(得分:0)

以下是关于此的GitHub项目: https://github.com/zSprawl/NativeControls

只需下载项目并在xcode 4.x中打开它 希望这有帮助!