ios phonegap 子浏览器插件设置

Posted

技术标签:

【中文标题】ios phonegap 子浏览器插件设置【英文标题】:ios phonegap Child Browser plugin setup 【发布时间】:2013-04-30 15:40:41 【问题描述】:

所以我在 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>

然后对于我的&lt;a&gt; 标签,我使用了 github 示例中使用的 onClick 事件Here

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

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

【问题讨论】:

【参考方案1】:

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

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

还有Installing Cordova Plugins with Phonegap - no 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) 享受。

【讨论】:

是的,按照您的步骤返回 github 以确保它是正确的 javascript 来启动它,但它仍然无法正常工作。我去点击链接,没有任何反应。但是感谢您的帮助 您好,我刚刚实现了。如果您愿意,我可以以任何方式为您提供帮助,以便您开始工作。同时我会在github上推送,以便您访问它。让我知道,如果有任何其他方式我可以提供帮助。 :) 嘿,谢谢你的提议。感谢您提供的所有帮助。你的 github 的链接是什么?【参考方案2】:

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

步骤:

1- 在config.xml 添加:

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

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

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

【讨论】:

欢迎来到 Stack Overflow。请在您的答案中总结链接;这样,如果链接失效,答案也不会完全没用。【参考方案3】:
<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;

【讨论】:

以上是关于ios phonegap 子浏览器插件设置的主要内容,如果未能解决你的问题,请参考以下文章

包含 Google Admob 插件时,Phonegap/Cordova 2.9 iOS 应用内浏览器未打开

数学PhoneGap插件?

在 Chrome 浏览器、iOS 和 Android 中使用 phonegap-plugin-push?

Cordova/Phonegap / iOS:错误:找不到插件“Plugin01”,或者不是 CDVP 插件。检查 config.xml 中的插件映射

phonegap inappbrowser IOS 不工作

PhoneGap:如何跳过 inAppBrowser 以使用 Safari 打开 url