在android WEBAPP上启动ADB



是否有一种方法来启动一个web应用程序使用adb?web应用程序是使用manifest创建的。Json和保存在android上使用chrome浏览器。我试图使用adb shell pm list packages获得web应用程序的包名称,但似乎没有匹配。我想这样启动我的web应用程序adb shell am start -n com.package.name/com.package.name.ActivityName

我也试过这种方式adb shell am start -a android.intent.action.VIEW -d "url"。这工作,但它不是我想要的。

假设您来自Javascript世界(您可以通过查看adb日志来做到这一点),这应该是您正在寻找的

adb shell am start -a com.google.android.apps.chrome.webapps.WebappManager.ACTION_START_WEBAPP -n com.android.chrome/org.chromium.chrome.browser.webapps.WebappLauncherActivity --es "org.chromium.chrome.browser.webapp_url" "{your_url}" --es "org.chromium.chrome.browser.webapp_mac" "{webapp_mac}"

注意这个url必须匹配你在start_url中提到的url/url结尾你在舱单上提到的。Json,否则它会打开它作为另一个chrome选项卡。

这里的另一个警告是你必须通过web应用mac验证检查,这是由这里提到的核心android类完成的- WebappAuthenticator

Chrome不保留已安装web应用程序的有效url存储(因为它不知道什么时候已经卸载了)。因此,在安装时,它告诉Launcher一个消息身份验证码(MAC)以及web应用程序的URL,然后Chrome可以验证启动时的MAC,例如{@ link# FullScreenActivity}。Chrome可以因此要区分合法的、已安装的web应用程序和任意的应用程序其他url。

我试着打开了我拥有的一个web应用程序。过了一会儿,我就放弃了,迷失在神秘的算法中。也许你会有一些运气。祝一切顺利!!

最新更新