1

我在 inAppBrowser Cordova Android中打开一个网页。当用户下拉该页面时,我想重新加载该页面。我正在为此使用 iScrollView(https://github.com/watusi/jquery-mobile-iscrollview)。

我什至无法拉下打开的网页,也无法触发事件?

我尝试了以下代码,但我无法绑定事件,因为 inAPPbrowser 在 webview 中打开。

在 index.js 中通过 inAppBrowser 加载网页

ENV 是我的网页 URL

index.js

在 Ready 设备期间绑定事件,我也尝试将它与 ref 绑定(在应用程序浏览器参考中),这也不起作用

onDeviceReady: function() {
        this.receivedEvent('deviceready');
         env = env_variable;

       ref = cordova.InAppBrowser.open(env, '_blank','clearcache=no,location=no, clearsessioncache=no, 
        footer=no,zoom=no' );

    new jQuery(function(){

                        new jQuery(".iscroll-wrapper").bind({
                            iscroll_onpulldown: onPullDown,
                            iscroll_onpullup: onPullUp
                        });

                        new jQuery( document ).ready(function() {
                                console.log( "ready!" );
                                alert('ready');
                        });
    });

索引.html

 <body>

    <div data-role="content" data-iscroll >
        <div class="app">
            <div class="iscroll-pulldown">
                <span class="iscroll-pull-icon"></span>
                <span class="iscroll-pull-label"></span>
            </div>
            <h1>My Power Grid</h1>
            <div id="deviceready" class="blink">
                <p class="event listening">Connecting to Device</p>
                <p class="event received">Device is Ready</p>
            </div>

            <div class="iscroll-pullup">
                <span class="iscroll-pull-icon"></span>
                <span class="iscroll-pull-label"></span>
            </div>

        </div>


    </div>

        <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
        <script>
            var jq = jQuery.noConflict();
        </script>
        <script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>
        <script src="js/iscroll.js" type="text/javascript"></script>
        <script src="js/jquery.mobile.iscrollview.js" type="text/javascript"></script>
        <script type="text/javascript" src="cordova.js"></script>
        <script type="text/javascript" src="js/index.js"></script>
        <script type="text/javascript" src="js/env.js"></script>



    </body>

我在控制台中收到的唯一消息是

: D/SystemWebChromeClient: file:///android_asset/www/js/iscroll.js: Line 1070 : 'webkitCancelAnimationFrame' is vendor-specific. Please use the standard 'cancelAnimationFrame' instead.
I/chromium: [INFO:CONSOLE(1070)] "'webkitCancelAnimationFrame' is vendor-specific. Please use the standard 'cancelAnimationFrame' instead.", source: file:///android_asset/www/js/iscroll.js (1070)

当我不加载 index.js 并将 jquery 代码放入 index.html 时,我可以下拉页面,也可以触发事件。

如何在应用浏览器中绑定iscroll?任何人都可以帮忙吗?

4

1 回答 1

1

尝试使用 executeScript 方法执行 JS:

   var ref = cordova.InAppBrowser.open(env, '_blank','clearcache=no,location=no, clearsessioncache=no, 
    footer=no,zoom=no');
    ref.addEventListener('loadstart', function() {
        ref.executeScript({
        code: 
            'new jQuery(function(){

            new jQuery(".iscroll-wrapper").bind({
            iscroll_onpulldown: onPullDown,
            iscroll_onpullup: onPullUp
            });

            new jQuery( document ).ready(function() {
            console.log( "ready!" );

            });
            });'

        });
    });
于 2019-09-03T11:47:25.787 回答