launchExternal不适用于Android上的XDK应用

时间:2014-11-06 13:17:58

标签: android window.open intel-xdk

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

我已经尝试了window.open(url,"_system")intel.xdk.device.launchExternal(url),并且在使用英特尔应用预览应用时都可以使用IOS和Android。

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

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

有什么想法吗?是否有插件我必须检查启动外部工作的Cordova选项?

2 个答案:

答案 0 :(得分:4)

要使用intel.xdk.device.launchExternal(url),您需要在项目面板>上的英特尔XDK插件组下包含设备插件。 Cordova 3.X混合移动应用程序设置>包含的插件>精选&定制Cordova插件>设备。

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

<!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>

答案 1 :(得分:0)

请注意,intel.xdk.device.launchExternal现已弃用。使用默认的inappbrowser APi如下:window.open(“market:// details?id =”,“_ blank”,“location = no”)