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

如何通过Html网页调用本地安卓app,第1张

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

<html>

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=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>

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

二:如何通过这个方法获取网页带过来的数据

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

可以使用上述的方法,把一些数据传给本地app,那么首先更改一下网页,代码修改后:

<html>

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=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

}

})

html里是无法检测,只能js调用android的方法,获取到app的安装信息后,再调用js,传值到html里获得。

如果您对我的回答有不满意的地方,还请您继续追问;

答题不易,互相理解,互相帮助!

首先为了保证能够打开你的app,你必须要在androidManifest.xml中配置的filter中data的属性表述。

<data

android:pathprefix="/taoge/open" android:scheme="xttblog"></data>

androidManifest.xml

代码如下:

XML/HTML Code

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.taoge"

android:versionCode="2"

android:versionName="3.24.03" >

<uses-sdk

android:minSdkVersion="8"

android:targetSdkVersion="17" />

<application

android:allowBackup="true"

android:configChanges="orientation|screenSize"

android:icon="@drawable/logo"

android:label="@string/app_name"

android:logo="@drawable/logo"

android:sharedUserId="android.uid.system"

android:theme="@android:style/Theme.Light.NoTitleBar" >

<activity

android:name="xttblog.WelcomeActivity"

android:excludeFromRecents="true"

android:screenOrientation="portrait"

android:theme="@android:style/Theme.Light.NoTitleBar" >

<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.BROWSABLE" />

<category android:name="android.intent.category.DEFAULT" />

<data android:pathPrefix="/taoge/open"

android:scheme="xttblog" />

</intent-filter>

</activity>

<activity

android:name="xttblog.AntRepairActivity"

android:label="@string/title_activity_ant_repair" >

</activity>

</application>

</manifest>

其次,你要在你的网页中访问xttblog://taoge/open。可以使用的元素有很多,如:script,iframe,img等。使用它们的src属性,访问xttblog://taoge/open。html5代码如下:

XML/HTML Code复制内容到剪贴板

<!DOCTYPE HTML>

<html>

<script>

function openapp(){

document.getElementById('xttblog').innerHTML='<iframe src="xttblog://taoge/open"></iframe>'

}

</script>

<body>

<div style="display:none" id="xttblog"></div>

<input type="button" value="打开app" onclick="openapp()">

</body>

</html>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7288280.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存