我实现了在Android和iOS一custom URL scheme,与我们会发送一个“激活”电子邮件发送至用户的想法,他点击了一个产生本地应用程序的链接。无法取得Gmail的Android打开自定义URL方案或意向:// URL
技术上,我们发送HTML格式的电子邮件,其中包含一个链接,如:
<a href="myapp://activate/accountId/uniquetoken">Click to activate</a>
在iOS上它工作正常,但在Android上,这是行不通的。
我见过一些其他的S.O帖子和类似的东西,Android本身应该处理custom URL scheme,但表示它是Chrome浏览器和Android应用程序的GMail,这是剥离这些自定义myapp://
URL出。
为每有些员额的建议,我已经尝试创建一个意图URL。我试过以下所有内容
intent://activate#Intent;scheme=myapp;package=com.mycompany.myapp;end
#Intent;action=activate;end
#Intent;component=com.mycompany.myapp/.ui.MainActivity;end
intent://#Intent;component=com.mycompany.myapp/.ui.MainActivity;end
但他们都没有工作。在Android 6上,Android应用程序的GMail内没有可点击的内容,而针对intent uri格式的android文档记录极其糟糕。我能找到的最好的是“编程在Java中创建你的意图,然后调用.toUri就可以了”,(这是我如何产生的最破的意图的URI以上)
任何帮助,将不胜感激
更新1.这是我的活动,意图从Android清单
<activity android:name=".ui.MainActivity" android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!-- load via URL scheme -->
<intent-filter>
<data android:scheme="myapp" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
我试图建立一个Web服务器,这“反映”回自定义应用程序方案,以及这是否工作同时在Android和iOS
<a href="http://mycloudserver.net/myapp/activate/accountId/uniqueToken">Click</a>
该页面做了302重定向到
myapp://activate/accountId/uniqueToken
Web浏览器(Android版Chrome)遵循这种重定向,从而导致本机应用程序启动,因此,它提供了一个解决方案(各种)为Android应用程序的Gmail。
虽然它引入了云服务器上的人为依赖关系,但这很容易避免。
在iOS上它的叶子在Safari浏览器也是一个空白页面,这是次要的,但不幸的后面。
对于'myapp:// activate/accountId/uniqueToken',您可能需要在您的Intent中包含完整路径,或者至少在您的AndroidManifest.xml中的intent-filter路径中包含足够的路径'可以识别它。 你能否粘贴你的'AndroidManifest.xml'的'intent-filter'来处理url方案? – nicobatu