0 背景
老大要求通过 有视频监控功能的Web系统,来打开本地应用,并且本地app应用要直接打开相应的摄像头视频(传递参数)
1 Android端
AndroidManifest.xml的MAIN Activity下追加以下内容。(启动Activity时给予)
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER" />
</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="myapp" android:host="�video.app" android:pathPrefix="/openwith"/>
</intent-filter>
主要是<data android:scheme="myapp" android:host="jp.app" android:pathPrefix= "/openwith"/>
接下来在Activity中需要取值的地方添加以下代码,可以直接写在OnCreate函数里的:
Intent i_getvalue = getIntent();
String action = i_getvalue.getAction();
if(Intent.ACTION_VIEW.equals(action)){
Uri uri = i_getvalue.getData();
if(uri != null){
String url = uri.getQueryParameter("video_url");
}
}
这样就能获取到URL传递过来的值了
2 访问
<a href="myapp://video.app/openwith?url=1>Play</a>
3 注意
有些浏览器会在链接前面加上【http:// 】导致无法启动,有更彻底的做法:
使用一个app进程(A进程)启动一个本地http服务,如:http://127.0.0.1:6259/sendintent?intent=xxx
通过跨域调用这个接口来触发A进程,在A进程中通过原生App的能力来打开传入的App
网友评论