当我单击电子邮件中的链接时如何在应用程序android中导航

时间:2018-12-06 15:01:21

标签: android routing nativescript

我想通过电子邮件中的链接打开我的Application Android(Nativescript),即单击此处重置密码

  

http://XX.XXX.XX.XX:XXXX/reset/1234567891011121314

.so,当我从移动浏览器中单击链接时,我需要启动应用程序。

对此有什么解决办法吗?

更新代码:

    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
        <action android:name="android.intent.action.VIEW" />
    </intent-filter>
    <intent-filter android:autoVarify="true">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="http" android:host="xx.xxx.xx.xx" android:port="xxxx" android:path="reset">
        </data>
    </intent-filter>

我将链接更改为

http://mydomain.tk/v1/reset/1234567891011121314

<data android:scheme="http" android:host="mydomain.tk" android:path="/v1/reset">

不再工作。

2 个答案:

答案 0 :(得分:0)

我使用以下代码:

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

电子邮件链接设置为http://www.my.app.com/launch

参考:Launching Android Application from link or email

答案 1 :(得分:0)

Android

为您在AndroidManifest.xml中的活动添加意图过滤器

<intent-filter>
   <action android:name="android.intent.action.VIEW" /> 
   <category android:name="android.intent.category.DEFAULT" /> 
   <category android:name="android.intent.category.BROWSABLE" /> 
   <data android:scheme="myapp" /> 
</intent-filter>

您甚至可以使用网址进行深层链接

<intent-filter>
   <action android:name="android.intent.action.VIEW" /> 
   <category android:name="android.intent.category.DEFAULT" /> 
   <category android:name="android.intent.category.BROWSABLE" /> 
   <data
    android:scheme="http"
    android:host="XXXX"
    android:port="XXXX"
    android:path="reset"></data>
</intent-filter>

iOS

CFBundleURLTypes添加到Info.plist文件

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>com.yourcompany.myapp</string>
    </dict>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>myapp</string>
        </array>
    </dict>
</array>

在iOS中无法使用网络网址进行深层链接。一种解决方法是检查当前设备是否为iOS,然后从您的网页启动应用。

如果要处理URL中传递的参数,则必须使用nativescript-urlhandler插件。