android - launchExternal 不适用于 Android 上的 XDK 应用程序

标签 android window.open intel-xdk

我有一个用 XDK 开发的应用程序。该应用程序一次链接到外部网站(实际上是 PDF)。

我已经尝试了 window.open(url,"_system")intel.xdk.device.launchExternal(url) 并且都适用于 IOS 和 Android使用 Intel App Preview 应用程序时。

但是,一旦构建完成并将应用程序上传到 Play 商店,外部链接就不起作用了。我还不能说 IOS,因为 Apple 尚未完成对应用程序的测试,但在 Android 上,就好像链接不存在一样。完全没有回应。即使添加 try/catch 循环也不会产生更多信息。

我意识到因为链接生成 PDF,所以 Android 设备必须安装 PDF 查看器才能查看它,但是我的测试设备确实有一个,并且如从 App Preview 运行时所述,它会下载 PDF 并提示在 Adob​​e 中查看它。

有什么想法吗?有没有我必须检查 Cordova 选项才能使 launchExternal 工作的插件?

最佳答案

为了使用 intel.xdk.device.launchExternal(url),您需要在 Projects Panel > Cordova 3 的 Intel XDK Plugins 组下包含 Device 插件。 X 混合移动应用程序设置 > 包含的插件 > 精选和自定义 Cordova 插件 > 设备。

为了使用 window.open(url,"_system") 打开一个利用 Cordova inAppBrowser 插件的 URL,您需要在项目中包含 In App Browser 插件面板 > Cordova 3.X 混合移动应用程序设置 > 包含的插件 > 标准 Cordova 插件 > 在应用程序浏览器中。

<!DOCTYPE html><!--HTML5 doctype-->
<html>
<head>
    <title>Your New Application</title>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" />
    <style type="text/css">
        /* Prevent copy paste for all elements except text fields */
        *  { -webkit-user-select:none; -webkit-tap-highlight-color:rgba(255, 255, 255, 0); }
        input, textarea  { -webkit-user-select:text; }
        body { background-color:white; color:black }
    </style>
    <script src='intelxdk.js'></script>
    <script src='cordova.js'></script>
    <script src='xhr.js'></script>
    <script type="text/javascript">
        var onDeviceReady=function(){                             // called when Cordova is ready
           if( window.Cordova && navigator.splashscreen ) {     // Cordova API detected
                navigator.splashscreen.hide() ;                 // hide splash screen
            }
        } ;
        document.addEventListener("deviceready", onDeviceReady, false) ;
    </script>
</head>
<body>
    <!-- content goes here-->
    <h2>Hello World</h2>
    <script>
        function openExternal(elem) {
            window.open(elem.href, "_system");
            return false; // Prevent execution of the default onClick handler 
        }
    </script>
    <a href="https://www.twitter.com" onClick="javascript:return openExternal(this)">Twitter</a>
</body>
</html>

关于android - launchExternal 不适用于 Android 上的 XDK 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26780521/

相关文章:

android - 这段代码制造了什么样的蛇?

javascript - 使用 window.open 打开多个 URL

android - 在构建时排除文件夹 Intel XDK

android - AlarmManager 在特定时间间隔后不调用 BroadcastReceiver

android - 从 uri 获取视频文件的完整路径

javascript - iframe 中的 Open.window

angularjs - 以编程方式打开新窗口(或新选项卡),而不是始终弹出窗口

jquery mobile intel xdk 应用程序表单提交不起作用

redirect - 不支持 hello.js facebook 登录重定向 uri,应用程序 ID 无效

java - 如何将 EditText 中的多个值设置为 1 Textview 并自动显示而无需单击按钮