美文网首页
Android 点击浏览器链接打开本地应用

Android 点击浏览器链接打开本地应用

作者: 河的左岸 | 来源:发表于2017-06-07 23:29 被阅读0次

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

相关文章

网友评论

      本文标题: Android 点击浏览器链接打开本地应用

      本文链接:https://www.haomeiwen.com/subject/pwtzfxtx.html