我正在编写一项服务,通过adb打开Android应用程序的深层链接:
(function () {
'use strict';
angular.module('app.services.sharepoint')
.factory('termStoreSvc', ['$log', '$q', function ($log, $q) {
var self = undefined;
var termStoreSvc = function () {
self = this;
self.init = init;
self.deferred = $q.defer();
self.promise = self.deferred.promise;
self.ready = function (fn) {
return self.promise.then(fn);
}
};
function init() {
$log.debug('Initializing');
// do some stuff here
$log.debug('Initialized');
self.deferred.resolve();
};
return termStoreSvc;
}]);
})();
以上命令正常工作:
adb shell am start -W -a android.intent.action.VIEW -d http://www.example.com/deeplinktest com.example.mjohnst.deeplinktest
我想要做的是让应用程序已经打开/热到任何视图,并且仍然可以访问深层链接。
如果我在模拟器上打开了应用程序并尝试此操作,我会收到此警告:
Starting: Intent { act=android.intent.action.VIEW dat=http://www.example.com/... pkg=com.example.mjohnst.deeplinktest }
Status: ok
Activity: com.example.mjohnst.deeplinktest/.MainActivity
ThisTime: 606
TotalTime: 606
WaitTime: 731
Complete
并且未访问深层链接(应用程序的当前非链接视图被带到前台)。
我有没有办法通过adb或其他界面访问已打开的应用上的深层链接?
编辑:我知道在访问之前有一个Warning: Activity not started, its current task has been brought to the front
标志可以杀死该应用,但这不是我想要的。我希望热情的开始提供性能提升
答案 0 :(得分:1)
我发现,如果您通过非深层链接活动启动应用,则需要深层链接" warm"会工作的。
使用此adb命令启动应用程序:
shell am start -a android.intent.action.VIEW -n {packageName}/{activityName}