从链接中打开安卓应用程序

4

我了解通用链接,但这不是我想做的事情。使用通用链接,我必须定义一些URL模式,当我尝试在浏览器中打开它时(单击指向该URL的链接),它会问我是否要打开应用程序。如果我理解有误,请纠正我。我想通过app-name:{data goes here}或者简单地说app-name:(app-name是我想要在某个地方定义的名称)来打开应用程序。不确定这种链接叫什么?现在我可以通过不同的名称打开应用程序,不确定它在哪里定义。尝试更改包名称,因为我认为它是从那里自动生成的,但没有成功。应用程序是用Cordova编写的,也许有一些限制,我不知道。但如果您能提供关于如何在Cordova中实现此目标的更多信息,那就太棒了!

2个回答

3
如果你想从一个应用程序打开另一个应用程序,只需使用以下代码:
Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.package.anotherapp");
if (launchIntent != null) { 
    startActivity(launchIntent);//null pointer check in case package name was not found
}

如果您想从某个网址打开应用,您需要使用"深度链接"。请阅读以下内容:https://developer.android.com/training/app-links/deep-linking
 <intent-filter>
    <action android:name="android.intent.action.VIEW"></action>

    <category android:name="android.intent.category.DEFAULT"></category>
    <category android:name="android.intent.category.BROWSABLE"></category>

    <data
        android:host="www.my.app.com"
        android:path="launch"
        android:scheme="http"></data>
</intent-filter>
With the email link set as http://www.my.app.com/launch.

如果需要在您的应用程序中从webView打开应用程序页面,您只需创建一个新的WebViewClient,并在其中处理您的URL即可。


1
谢谢你的回答!正如我所说,我不想使用Web URL来打开应用程序,而只是使用应用程序名称:..此外,它将被用作浏览器中的链接,但不是URL方案。 - kirpt

3

嘿,我已经测试过了,但我想这样做:myapps:forgotpassw(不要使用应用程序名称作为协议)。 - kirpt
不想打扰,为什么不使用应用程序的名称作为协议呢?这是技术问题还是隐私问题?因为使用此插件,您可以拥有名为HELLOWORLD的应用程序并使用“byebye://”作为方案。您可以在config.xml上配置方案链接:<param name="URL_SCHEME" value="byebye" />。 - Enzo B.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接