gpt4 book ai didi

Android Phonegap - 在外部浏览器中打开 iframe 链接而不是 Phonegap WebView

转载 作者:太空狗 更新时间:2023-10-29 14:27:07 26 4
gpt4 key购买 nike

在我正在处理的 Phonegap 1.3.0 应用程序中,我遇到了一个看似很小的问题。它适用于 Android 设备。

问题源于我试图整合到我的应用程序中的广告。我正在尝试使用 Leadbolt 的无 SDK 报价墙以及他们的横幅广告。

我在我的应用程序的 iframe 内加载优惠墙,在隐藏的 DIV 内,然后在需要时显示它 - 这部分工作得很好。

当我点击报价墙上的一个链接时,问题就来了:链接不是在新的外部/ native 浏览器中启动点击的 URL,而是在 iframe 中打开。当有人点击横幅时也会发生同样的事情,尽管这些是通过在您希望广告显示的位置插入而不是通过 iframe 来集成的。 (也许脚本注入(inject)了一个 iframe,不知道,最终行为是一样的)

我现在想做的是在 Java 中实现一个方法来捕捉任何点击,如果链接不是相对的/本地的——即如果它以“http”、“https”为前缀,则打开一个新的浏览器,或“市场”协议(protocol)

这才是真正的问题所在——我对 Java 的唯一体验就是对 Phoengap 有点不适应:(

我整天都在阅读和测试一些东西,但最后我必须求助于那些在 Java 编程方面比我更了解的人。

这是我到目前为止一直在尝试的:

package com.phonegap.my_great_app;

import android.os.Bundle;
import android.webkit.WebView;
import com.phonegap.*;

public class MyGreatApp extends DroidGap {

@Override
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
super.loadUrl("file:///android_asset/www/index.html");


/* Intercept clicked links, and open external URLs in external browser */
public boolean shouldOverrideUrlLoading(DroidGap super, String url) {
if (url != null && url.startsWith("market://") || url.startsWith("http://") || url.startsWith("https://")) {

/* Open new WebView or external browser with URL */
/* Do it here */
Uri uri = Uri.parse(url);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);

} else {

/* Do nothing, it's relative URL from my app */
return false;

}
}

}
}

我确信这段代码错得可笑,但希望它能说明我在这里试图实现的目标。说实话,我什至不知道 shouldOverrideUrlLoading() 是否是解决此问题的正确方法!

如果您能提供任何建议或代码示例,我将不胜感激!谢谢:)

编辑:明确一点 - 我无法更改 iframe 源代码,因此由于 XSS 问题,javascript 或更改链接目标不是一个选项。

最佳答案

您可以在默认浏览器中打开外部链接,而不是在您的 phonegap 应用程序中打开。这可以通过两种方式轻松完成。

一种是像这样使用 Phonegap 方法,

navigator.app.loadUrl('http://stackoverflow.com');
/*NOTE : In some phonegap versions it does not works*/

另一种方法是使用 jquery mobile,你可以这样做,

<a href="http://www.youtube.com/user/mychannel" class="ui-link" rel="external" target="_blank" title="My YouTube Channel">YouTube Channel</a>

就这些。

关于Android Phonegap - 在外部浏览器中打开 iframe 链接而不是 Phonegap WebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11238029/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com