我打算创建以下设计:
- 主视图应该显示一个网页
- 它的左边应该有一个抽屉
- 抽屉应由应用标题中的“汉堡包”图标触发
我现在有以下应用程序结构:
主视图:
<div class="padding" ng-controller="IndexController">
<super-navbar>
<super-navbar-title>
My first app!
</super-navbar-title>
</super-navbar>
</div>
Controller :
angular
.module('example')
.controller('IndexController', function($scope, $document, supersonic) {
$scope.navbarTitle = "Index";
addEventListener('load', load, false);
steroids.view.displayLoading();
var googleLayer = null;
googleLayer = new steroids.views.WebView({ location: "http://example.com/page1" });;
googleLayer.preload({}, {
onSuccess: replaceLayer
});
function load() {
var options = {
side: "left",
width: 150
}
supersonic.ui.views.find("leftDrawer").then(function (leftDrawer) {
supersonic.ui.drawers.init(leftDrawer);
supersonic.ui.drawers.open("leftDrawer")
});
}
function replaceLayer() {
steroids.layers.replace({
view: googleLayer,
}, {
onSuccess: function () {
//alert("The layer stack has been replaced.");
},
onFailure: function (error) {
//alert("Could not replace the layer stack: " + error.errorDescription);
}
});
}
});
结构.咖啡:
# Read more about app structure at http://docs.appgyver.com
module.exports =
# See styling options for tabs and other native components in app/common/native-styles/ios.css or app/common/native-styles/android.css
#tabs
rootView:
location: "example#getting-started"
preloads: [
{
id: "learn-more"
location: "example#learn-more"
}
{
id: "using-the-scanner"
location: "example#using-the-scanner"
}
]
drawers:
left:
id: "leftDrawer"
location: "example#drawer"
showOnAppLoad: true
options:
animation: "swingingDoor"
# initialView:
# id: "initialView"
# location: "example#initial-view"
到目前为止的行为:
- 应用程序启动并显示一个加载圆圈(因为
steroids.view.displayLoading();
) - 加载圆圈消失,网页加载(因为 googleLayer 正在替换初始 View )
- 没有显示抽屉
我认为,应该进行这些修改:
- 初始 View 应该已经加载页面(如何?它只是一个 div)
- 抽屉应该可以用了
- 应该有一个可点击的“汉堡包”图标
我应该修改什么以实现所需的行为?我找不到任何合适的教程或足够的文档。
最佳答案
您的初始 View 已被评论。去掉“#”
关于javascript - 如何在 Appgyver Steroids 中创建自定义 webview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29221255/