我有一个供移动设备(Android
和iOS
)使用的asp经典站点,该站点使用Intent通过javascript调用了本机应用程序。有时它可以工作,而其他时候却无法打开应用程序。在iOS中,它始终有效。通话就像
appNativeName://sign?fileid=yyyyyyy&rtservlet=serverUrl&key=xxxxx
Android是否有对意图URL的控制或验证?
在要从浏览器的意图过滤器中打开的活动的AndroidManufest.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="yourscheme"/>
</intent-filter>
然后在Activity的onCreate()方法中捕获该意图并执行您想做的所有事情:
val intent = intent
if (Intent.ACTION_VIEW == intent.action) {
val uri = intent.data
if (uri?.host?.matches("something_you_need") == true) {
doSomething(token)
} else {
doSomethingElse()
}
}
然后您可以从您的网络中调用类似的内容:yourscheme://something_you_need