PhoneGap inApp Browser和WebSQL

时间:2014-07-11 11:08:42

标签: cordova web-sql inappbrowser

我对 PhoneGap InApp浏览器进行了需求分析。

我想知道关于InApp浏览器的两件事..

1:Can I call an Html file which located in my WWW folder using inApp Browser?

2:Can I create SQLite(WebSQL) and saving data from the Page which loaded in inApp browser? (这里有一个位于WWW文件夹名称test.html中的页面及其在inApp浏览器中的加载。在这个html文件中我编写了用于创建WebsQL并将数据保存到数据库中。是否可能?)

请告诉我你的意见..

2 个答案:

答案 0 :(得分:1)

1:是的,您可以在本地www文件夹中打开HTML文件。

window.open('local-url.html', '_blank');

请参阅this link

2:是的,有一种方法可以做到这一点,但不是通过正式的API。 TJ VanToll有一个full example可用,它使用超时来检查网页中的值,然后将其保存到localStorage。然后,您可以将其保存到WebSQL中。

<div data-role="view">
    <div>
        <h1>Welcome!</h1>
        <button data-role="button" data-click="app.setName">Set Name</button>
    </div>
</div>
<script>
    window.app = {
        load: function() {
            navigator.splashscreen.hide();
            new kendo.mobile.Application( document.body );
        },

        setName: function() {
            var win = window.open( "http://jsfiddle.net/tj_vantoll/K2yqc/show", "_blank",
                "EnableViewPortScale=yes" );

            win.addEventListener( "loadstop", function() {
                win.executeScript({ code: "localStorage.setItem( 'name', '' );" });
                var loop = setInterval(function() {
                    win.executeScript(
                        {
                            code: "localStorage.getItem( 'name' )"
                        },
                        function( values ) {
                            var name = values[ 0 ];
                            if ( name ) {
                                clearInterval( loop );
                                win.close();
                                $( "h1" ).html( "Welcome " + name + "!" );
                            }
                        }
                    );
                });
            });
        }
    };

    document.addEventListener( "deviceready", app.load );
</script>

在本地网页上,他包括:

$( "form" ).on( "submit", function() {
    localStorage.setItem( "name", this.name.value );
});

答案 1 :(得分:1)

  1. 是的,您可以使用

    调用本地页面

    window.open('mypage.html', '_blank','location=no');

  2. 棘手的回答。是的,您可以从inAppBrowser中的该页面创建websql。怎么样!搜索phonegap / cordova文档。但是......在inAppBrowser中使用websql存在一个问题。问题解释here : inAppbrowser and webSql failure - cordova

  3. 问题描述here : look at the answer

    我的建议是use this : SQLite wrapper