Кнопка «Назад» не работает в файле QML BB10

Я пытаюсь реализовать базовую кнопку «Назад» в своем приложении.

Я использую веб-представление на странице.

Добавлена ​​кнопка и код, который я нашел на форуме.

   Button {
        id: button1
        text: "Back"
        onClicked: {
            WebView.goBack();
        }

я что-то пропустил?


person user3091784    schedule 11.12.2013    source источник
comment
Как эта кнопка найдет объект с идентификатором «WebView»? Когда вы запускаете это, журнал устройства показывает что-нибудь, например, «WebView не найден»?   -  person Peter Strange    schedule 11.12.2013


Ответы (2)


это простой код

main.qml

import bb.cascades 1.0
NavigationPane {
    id: nav
    Page {
        id: pg
        titleBar: TitleBar {
            id: tb
            title: "Mini Web Browser"


        }

        Container {layout:StackLayout {
                orientation:LayoutOrientation.TopToBottom
        }
        Container {

            layout:StackLayout {
                orientation:LayoutOrientation.LeftToRight
            }
            TextField {
                id:tf
                hintText: "Enter you Url"
                inputMode: TextFieldInputMode.Url
                input.submitKey: SubmitKey.Go

                layoutProperties: StackLayoutProperties {
                    spaceQuota: 5
                }

            }
            Button {
                id:go
                imageSource: "asset:///ic_done.png"
                layoutProperties: StackLayoutProperties {
                    spaceQuota: 1
                }
                onClicked: {
                    console.log(tf.text);
                    console.log(myWebView.urlChanged(tf.text))

                }
            }


        }
        ScrollView {
            scrollViewProperties.pinchToZoomEnabled: true
            scrollViewProperties.scrollMode: ScrollMode.Both
            WebView {
                id:myWebView
                url: "https://www.google.com/search?q="+tf.text 
                settings.devicePixelRatio: 1.0

                onLoadingChanged: {
                    if (loadRequest.status ==  WebLoadStatus.Started ) {
                        statusLabel.setText("Loading start..................")
                        tb.title=myWebView.title
                        statusLabel.visible=true

                    }
                    else if (loadRequest.status ==  WebLoadStatus.Succeeded ) {
                        statusLabel.setText("Loading finished.")
                        statusLabel.visible=false
                        tb.title=myWebView.title                                   
                    }
                    else if (loadRequest.status ==  WebLoadStatus.Failed ) {
                        statusLabel.setText("Load failed.")
                    }
                }
            }
        }
        ProgressIndicator {
            id: pi
            verticalAlignment: VerticalAlignment.Fill                       
            fromValue:0
            toValue: 100
            value:myWebView.loadProgress
            onValueChanged: {
                if(value<100)
                    pi.visible=true 
                else if(value== 100)
                    pi.visible=false


            }
        }

        Label{
            id: statusLabel
            verticalAlignment: VerticalAlignment.Bottom
            horizontalAlignment: HorizontalAlignment.Fill
            text: "ram"    
            //visible: 
            textStyle.textAlign: TextAlign.Left
            textStyle.color: Color.Black
        }

        }


        actions:[
            ActionItem {

                enabled: myWebView.canGoBack
                title: "Back"
                ActionBar.placement: ActionBarPlacement.OnBar
                imageSource: "asset:///ic_previous.png"

                onTriggered: {  
                    myWebView.goBack()

                }

            },

            ActionItem {
                title: "Forword"
                enabled: myWebView.canGoForward
                ActionBar.placement: ActionBarPlacement.OnBar
                imageSource: "asset:///ic_next.png"  
                onTriggered: {  myWebView.goForward();  

                }

            },

            ActionItem {
                title:myWebView.loading ? "Stop" : "Reload"

                ActionBar.placement: ActionBarPlacement.OnBar
                imageSource:myWebView.loading ?  "asset:///ic_cancel.png" : "asset:///ic_rotate.png"
                onTriggered: {myWebView.loading ? myWebView.stop():myWebView.reload();

                }

            } 
        ]
    }   
}
person Ankur    schedule 12.12.2013

Это то, что я использую для страницы справки, которая загружается с помощью HTML из каталога ресурсов, который может содержать ссылки на веб-сайт приложения для получения дополнительной информации. Комментарий Питера может быть вашим решением. В этом случае кнопка «Назад» размещается на панели заголовков, но с таким же успехом ее можно разместить на панели действий, в дополнительном меню или в другом месте.

import bb.cascades 1.0

Page {
    titleBar: TitleBar {
        title: "Help"
        scrollBehavior: TitleBarScrollBehavior.NonSticky
        dismissAction: ActionItem {
            title: "Close"
            onTriggered: {
                helpSheet.close();
            }
            imageSource: "asset:///images/ic_cancel.png"
        }
        acceptAction: ActionItem {
            title: "Back"
            enabled: webView.canGoBack
            onTriggered: {
                webView.goBack();
            }
        }
    }

    id: helpPage
    objectName: "helpSheet"
    ScrollView {
        Container {
            layout: StackLayout {
            }
            WebView {
                id: webView
                url: "local:///assets/help.html"
                layoutProperties: StackLayoutProperties {
            }
            topMargin: 21.0
            }
        }
    }
}
person Richard    schedule 12.12.2013