怎样通过Html网页调用本地安卓app

怎样使用html网页和本地app进行传递数据呢?经过研究。发现还是有方法的,总结了一下,大致有一下几种方式

一、通过html页面打开Android本地的app

1、首先在编写一个简单的html页面

<html>

    <head>

        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

        <title>Insert title here</title>

    </head>

    <body>

        <a href="m://my.com/">打开app</a><br/>

    </body>

</html>

2、在Android本地app的配置

在AndroidManifest的清单文件中的intent-filte中增加例如以下元素:
 <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:host="my.com"
                    android:scheme="m" />
</intent-filter>

演示样例截图例如以下:

然后使用“手机浏览器”或者“webview”的方式打开这个本地的html网页。点击“打开APP”就可以成功开启本地的指定的app

二、怎样通过这种方法获取网页带过来的数据

仅仅能打开就没什么意思了,最重要的是。我们要传递数据,那么怎么去传递数据呢?

我们能够使用上述的方法,把一些数据传给本地app,那么首先我们更改一下网页。代码改动后:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <a href="m://my.com/?arg0=0&arg1=1">打开app</a><br/>
    </body>
</html>

(1).假如你是通过浏览器打开这个网页的,那么获取数据的方式为:

Uri uri = getIntent().getData();  String test1= uri.getQueryParameter("arg0");  String test2= uri.getQueryParameter("arg1");

(2)假设使用webview訪问该网页。获取数据的操作为:

webView.setWebViewClient(new WebViewClient(){
  @Override
  public boolean shouldOverrideUrlLoading(WebView view, String url) {
      Uri uri=Uri.parse(url);
          if(uri.getScheme().equals("m")&&uri.getHost().equals("my.com")){
              String arg0=uri.getQueryParameter("arg0");
              String arg1=uri.getQueryParameter("arg1");

          }else{
              view.loadUrl(url);
          }
      return true;
  }
});

时间: 2024-10-12 09:19:30

怎样通过Html网页调用本地安卓app的相关文章

如何通过Html网页调用本地安卓app

如何使用html网页和本地app进行传递数据呢?经过研究,发现还是有方法的,总结了一下,大致有一下几种方式 一.通过html页面打开Android本地的app 1.首先在编写一个简单的html页面 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</t

如何通过Html网页调用本地安卓app?

通过html页面打开Android本地的app 1.首先在编写一个简单的html页面 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <a href="m:/

html网页调用本地exe程序的实现方法:

html网页调用本地exe程序的实现方法:1.新建注册表具体文件: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\hhtpexe] [HKEY_CLASSES_ROOT\hhtpexe\defaulticon ]@="C:\\Program Files\\DMEO\\MultimediaDispatch.exe"--exe程序的路径 [HKEY_CLASSES_ROOT\hhtpexe\shell] [HKEY_CLAS

网页调用本地播放器的代码支持ie,chroome, 火狐不支持

<embed src="1.mp3" loop=false autostart=true name=bgss width="460" height="60"/> <embed src="2.mp3" loop=false autostart=true name=bgss width="460" height="60"/> <embed src="3

HTML网页调用本地Python程序

1.写好一个test.py用作调用 2.编写html代码,test.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script language="javascript"> function exec1(command) { var ws = new ActiveXObject("WScript.Shell"); w

通用网页调用本地应用程序方案(windows平台)

一.更新注册表 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\receiveOutOfArg] "URL Protocol"="D:\\LongHaibin\\Learn\\Net\\receiveOutOfArg\\receiveOutOfArg\\bin\\Debug\\receiveOutOfArg.exe" @="applicationName" [HKEY_CLASSES

html网页调用本地exe程序

1.使用记事本(或其他文本编辑器)创建一个protocal.reg文件,并写入以下内容 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\myWebshell] @="URL:myWebshell Protocol Handler" "URL Protocol"="" [HKEY_CLASSES_ROOT\myWebshell\DefaultIcon] @="D:\\Prog

一个实现浏览器网页与本地程序之间进行双向调用的轻量级、强兼容、可扩展的插件开发平台—本网通

通过本网通插件平台可实现在网页中的JavaScript脚本无障碍访问本地电脑的硬件.调用本地系统的API及相关组件,同时可彻底解决ActiveX组件在Chrome.FireFox.Opera.Edge.Safari等浏览器各版本的兼容使用问题. 系统兼容性:1.全面兼容Windows XP.Vista.7.8.10等各版本桌面系统:2.全面兼容Windows Server 2003.2008.2012.2016等各版本服务器系统:3.Linux.Mac.安卓等系统理论上也是可行的,欢迎熟悉这些平

Crosswalk+Cordova开发安卓app之 JavaScript调用java (附源代码下载)

 Crosswalk+Cordova开发安卓app之 JavaScript调用java (附源代码下载) 定义js回调接口 /** * js回调接口 * * @author graceup * */ public class JsInterface { public JsInterface() { } @JavascriptInterface public String sayHello() { // TODO do more thing return "Hello World!";