1

我使用Sencha TouchPhonegap (cordova-2.0.0)为 Android 开发了一个应用程序。

我有一个包含一些 HTML 的 Ext.Panel,例如:

<body>
     <a href="MyPage.html">MyPage</a>
</body>

我的问题:当我在设备上运行应用程序并点击链接时,Android 浏览器会打开 URL 并退出应用程序。

我的目标:当我在设备上运行应用程序并点击链接时,应用程序应该显示点击的链接,例如:

navigator.notification.alert(MyPage.html);

我的 Phonegap 代码(在 HTMLPanel 中显示 uniqueid.html):

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onRequestFileSystemSuccess, null);

function onRequestFileSystemSuccess(fileSystem) {
    fileSystem.root.getDirectory(Ext.ComponentQuery.query('#bibliothekDataView')[0].getSelection()[0].get('directory'), null, SelectedItemSuccess, SelectedItemFail);
}

//shows the uniqueid.html in the HTMLPanel
function SelectedItemSuccess(dir) {
    dir.getFile(record.get('id') + '.html', null, gotFileEntry, fail);
}

function SelectedItemFail() {
    navigator.notification.alert("Failed to read file contents: " + error.code);
}

function gotFileEntry(file) {
    file.file(gotFile, fail);
}

function gotFile(file) {
    readAsText(file);
}

function readAsText(file) {
    var reader = new FileReader();
    reader.onload = function (evt) {
        Ext.ComponentQuery.query('#mainHTMLPanel')[0].setHtml(evt.target.result);
    };

    reader.onerror = function () {
        navigator.notification.alert("Failed to read file!");
    };
    reader.readAsText(file);
}

function fail(error) {
    navigator.notification.alert("Failed to read file contents: " + error.code);
}

我的 HTMLPanel(视图):

Ext.define('myApp.view.HTMLPanel', {
    extend: 'Ext.Panel',
    xtype: 'mainhtmlpanel',

    config: {
        id: 'mainHTMLPanel',
        scrollable: 'vertical',
    }
});  
4

1 回答 1

2

您是否可以控制 Ext.Panel 中显示的 HTML 内容?如果是,则更<a href="MyPage.html">MyPage</a>改为<a href="javascript:alert('MyPage.html');">MyPage</a>.

于 2012-09-26T12:35:17.130 回答