2

所以我在 Xcode 中为我的 phonegap 应用程序设置了 Child Browser 插件,但遇到了一些问题。首先,为了确保它在 Xcode 中的结构正确,我的插件文件夹中包含所有本机文件以及ChildBrowser.bundle图标。
现在对于 html 方面,我脑子里有一个我的cordova.jschildbrowser.js文件,然后是这个

 <script type="text/javascript">
    function onDeviceReady() {

        var root = this;
        cb = window.plugins.childBrowser;

        if(cb != null) {
        cb.onLocationChange = function(loc){ root.locChanged(loc); };
        cb.onClose = function(){root.onCloseBrowser(); };
        cb.onOpenExternal = function(){root.onOpenExternal(); }
        }
    }

    function onCloseBrowser() {
        console.log("onCloseBrowser!");
    }

    function locChanged(loc) {
        console.log("locChanged!");
    }

    function onOpenExternal() {
        alert("onOpenExternal!");
    }

</script>

然后对于我的<a>标签,我使用了 github 示例中使用的 onClick 事件Here

<a onclick="childBrowser.showWebPage('http://google.com');" href="#">Test</a>

但是当我在模拟器中尝试它时,什么都没有发生,并且控制台日志甚至没有显示任何活动。我这样做是对的还是什么?任何帮助表示赞赏。我正在使用 phonegap 2.6.0

4

3 回答 3

4

这将帮助您添加子浏览器。

https://github.com/phonegap/phonegap-plugins/tree/master/iOS/ChildBrowser

以及使用 Phonegap 安装 Cordova 插件 - 没有 Cordova.plist

我通过上面的链接成功集成了它,下面是步骤。

1) 复制“ChildBrowser”中的所有文件并将其粘贴到PhoneGap 2.6.0 项目的“Plugin”文件夹中。

2)从“插件”添加框架,如下图所示。

在此处输入图像描述

3)将“ClildBrowser.js”包含到“www/index.html”中

4) 在 Xcode 中,将文件添加到“插件”文件夹中。

5) 遵循https://github.com/phonegap/phonegap-plugins/tree/master/iOS/ChildBrowser中提到的代码

6)享受。

于 2013-05-06T11:45:00.800 回答
2

更新:如果您使用 Phongap 2.0 或更高版本,则不需要外部插件。Phonegape 2.0 及更高版本带有 InAppBrowser,它是 ChildBrowser,但非常有效且节省时间,您无需经历所有这些痛苦的过程。设置 InAppBrowser

脚步:

1-config.xml添加:

<feature name="InAppBrowser">
    <param name="ios-package" value="CDVInAppBrowser" />
</feature>

OnDeviceReady()2-创建函数并在“内部或之后”加载phonegap后调用该函数

function externalWeb(url) {
    console.log("Initializing InAppBrowswer");

    var ref = window.open(url, '_blank', 'location=yes', 'EnableViewPortScale=yes');

    ref.addEventListener('loadstart', function(event) {
        console.log("start loading external link  :" + event.url);
    });

    ref.addEventListener('loadstop', function(event) {
        console.log("External link lodaded without any problem  : " + event.url);
    });

    ref.addEventListener('loaderror', function(event) {
        console.log("There is error in loading External link :" + event.url);
        alert('error: ' + event.message);
    });

    ref.addEventListener('exit', function(event) {
        console.log("External link is closed now :" + event.type + "link :" + event.url);
    });
}

3-现在打开一个链接调用上面的函数,并将 URL 作为字符串

var targetURL="http://www.google.co.uk";
externalWeb(targetURL);

有关更多信息,请点击链接InAppBrowser

于 2013-07-25T09:00:59.823 回答
0
<feature name="ChildBrowserCommand">
    <param name="ios-package" value="ChildBrowserCommand" />
</feature>

请记住获取最新的插件代码,因为 phonegap 已经改变了将参数传递给本机 .m 文件的方式 例如:

- (void)showWebPage:(CDVInvokedUrlCommand*)command 

并在 .h 文件中

@property (nonatomic, strong) ChildBrowserViewController* childBrowser;

-(void)showWebPage:(CDVInvokedUrlCommand*)command;
于 2013-10-08T06:55:02.050 回答