Titanium - Android:Intent - getData(),getAction()总是等于null

时间:2018-03-16 08:01:59

标签: javascript android titanium-mobile deep-linking appcelerator-titanium

当我使用我的项目的深层链接并尝试访问Ti.Android.currentActivity.getIntent().getData()时,它总是会返回null以及Ti SDK 6.2.0以上但是如果我将SDK降级到6.1.2那么它工作良好。它无法从传入的意图中读取数据。

重现步骤:

  1. 创建新的合金应用程序并使用以下测试代码
  2. 在任何Android设备上安装该应用。
  3. 转到浏览器并浏览以链接app name://videoURL
  4. 它会打开应用,但getData()始终为null,但应返回一个网址
  5. 预期结果:应该从深层链接打开应用程序时返回URL。

    这是测试代码:

    在alloy.js中:

    Alloy.Globals.getDeepLinkURL = function() {
        Alloy.Globals.deepLinkURLAndroid =Ti.Android.currentActivity.getIntent().getData();
    
        console.log("Alloy.Globals.deepLinkURLAndroid");
        console.log(Alloy.Globals.deepLinkURLAndroid);
        console.log(Ti.Android.currentActivity.getIntent());
    };
    

    在index.js中:

    $.index.addEventListener('open',function(){
        if(OS_ANDROID){
            Alloy.Globals.getDeepLinkURL();
        }
    
    });
    

1 个答案:

答案 0 :(得分:0)

Ti.Android.currentActivity.addEventListener('newintent', function (e) {
    var data = e.intent.getData();
    alert(`data: ${data}`);
});

返回数据,但此代码仅适用于index.js文件