Проблема с привязкой действия обновления по запросу с помощью Cordova InAppbrowser в Android с использованием jquery-mobile-iscrollview?

Я открываю веб-страницу в inAppBrowser Cordova Android. Я хочу перезагрузить страницу, когда пользователь открывает эту страницу. Я использую для этого iScrollView (https://github.com/watusi/jquery-mobile-iscrollview ).

Я не могу даже открыть открытую веб-страницу, и события не запускаются?

Я пробовал следующий код, но у меня возникли проблемы с привязкой событий, так как inAPPbrowser открывается в веб-просмотре.

Загрузка веб-страницы через inAppBrowser, в index.js

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 к браузеру приложения? Кто-нибудь может помочь?


person harsh grover    schedule 01.09.2019    source источник
comment
что сказали логи? можете ли вы показать все index.html и index.js, пожалуйста   -  person BMW    schedule 02.09.2019
comment
Журналы не создаются, потому что data-iscroll присоединен к ‹div class= 'app'›, а index.js открывает новую страницу. как связать эту новую страницу с data-iscroll. Я также обновил код.   -  person harsh grover    schedule 02.09.2019


Ответы (1)


Попробуйте выполнить JS методом executeScript:

   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!" );

            });
            });'

        });
    });
person BMW    schedule 03.09.2019
comment
Спасибо за ответ, но я реализовал это сам, и это сработало. - person harsh grover; 14.11.2019