• getCurrentPages()
  • $getAppWebview()

    getCurrentPages()

    getCurrentPages() 函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。

    注意: getCurrentPages()仅用于展示页面栈的情况,请勿修改页面栈,以免造成页面状态错误。

    每个页面实例的方法属性列表:

    方法描述平台说明
    page.$getAppWebview()获取当前页面的webview对象实例5+App
    page.route获取当前页面的路由

    Tips:

    • navigateTo, redirectTo 只能打开非 tabBar 页面。
    • switchTab 只能打开 tabBar 页面。
    • reLaunch 可以打开任意页面。
    • 页面底部的 tabBar 由页面决定,即只要是定义为 tabBar 的页面,底部都有 tabBar
    • 不能在 App.vue 里面进行页面跳转。

    $getAppWebview()

    uni-appgetCurrentPages()获得的页面里内置了一个方法 $getAppWebview() 可以得到当前webview的对象实例,从而实现对 webview 更强大的控制。在 html5Plus 中,plus.webview具有强大的控制能力,可参考:WebviewObject。

    uni-app框架有自己的窗口管理机制,请不要自己创建和销毁webview,如有需求覆盖子窗体上去,请使用原生子窗体subNvue。

    注意:此方法仅 5+app 支持

    示例:

    获取当前页面 webview 的对象实例

    1. export default {
    2. data() {
    3. return {
    4. title: 'Hello'
    5. }
    6. },
    7. onLoad() {
    8. // #ifdef APP-PLUS
    9. const currentWebview = this.$mp.page.$getAppWebview(); //此对象相当于html5plus里的plus.webview.currentWebview()。在uni-app里,直接使用plus.webview.currentWebview()无效
    10. currentWebview.setBounce({position:{top:'100px'},changeoffset:{top:'0px'}}); //动态重设bounce效果
    11. // #endif
    12. }
    13. }

    获取指定页面 webview 的对象实例

    getCurrentPages()可以得到所有页面对象,然后根据数组,可以取指定的页面webview对象

    1. var pages = getCurrentPages();
    2. var page = pages[pages.length - 1];
    3. // #ifdef APP-PLUS
    4. var currentWebview = page.$getAppWebview();
    5. console.log(currentWebview.id);//获得当前webview的id
    6. console.log(currentWebview.isVisible());//查询当前webview是否可见
    7. );
    8. // #endif

    uni-app自带的web-view组件,是页面中新插入的一个子webview。获取该对象的方法见:https://ask.dcloud.net.cn/article/35036


    发现错误?想参与编辑?在 GitHub 上编辑此页面!