最近项目刚好有做到内部HTML页面跳转原生页面和html代码启动App页面的功能,做完之后觉得相关知识可以整理一下


先说下项目所用到的js交互

android调取JS的方法

WebView直接加载js的方法就好了
代码如下

WebView.loadUrl("javascript:function(arg)")

html调用Android原生方法
//重点实现代码WebView.addJavascriptInterface(Object object,String name)

Objcet 对象是自己创建的对象,整体代码如下

public class AndroidJs{  @JavascriptInterface   public void test(){}}//webview codeWebView.addJavascriptInterface(new AndroidJs(),“AndroidJs” )//html codewindow.AndroidJs.test()

外部HTML启动APP页面

使用Scheme方案设置
在AndroidManifest.xml文件中对应的页面标签添加如下

<activity android:name="..."><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="hostName"        android:path="path"        android:scheme="schemeName" />intent-filter>activity>

Android Develop 标签 官方文档

Html代码调用如下

<a href = "schemeName://hostName/path">//需要带参数的和http链接的get请求一样<a href = "schemeName://hostName/path?id=1&name=mark">

带参数的调用 在Activity中的获取方式

String action = getIntent().getAction();if(!TextUtils.isEmpty(action)&&Intent.ACTION_VIEW.equal(action)){Uri uri = getIntent().getData();if(uri != null){    String id = uri.getQueryParameter("id");    String name = uri.getQueryParameter("name");}}
自定义WebView处理scheme格式链接
public void loadUrl(String url){  if(isSchemeUrl(url)){    Intent intent = new Intent();    intent.setData(Uri.parse(url));    startActivity(intent);  }}private boolean isSchemeUrl(String url) {    if (TextUtils.isEmpty(url))        return false;    String[] strs = url.split("://");    if (strs.length > 1) {        String host = strs[0];        if (host.equalsIgnoreCase("http") || host.equalsIgnoreCase("https"))            return false;        else            return true;    } else return false;}

一上是本人在处理Android JS交互 和 html启动APP的一些心得,如有问题,请各位留言

更多相关文章

  1. Android商城购物车页面实现和逻辑实现
  2. 基于Android平台的Web服务技术研究
  3. 【Android(安卓)UI设计与开发】第15期:顶部标题栏(六)实现悬浮式顶
  4. 浅谈Android(安卓)动画,带你进入动画的世界
  5. Android调用WebService之服务端实现(一)
  6. Android(安卓)AIDL机制范例解析
  7. Android代码里或者XML设置android:clickable="false"无效。点击
  8. Android高手进阶教程(八)之----Android(安卓)Widget开发案例(世
  9. Android(安卓)AsyncTask

随机推荐

  1. android broadcast intent
  2. Android(安卓)SDK Installation
  3. android中之断点续传
  4. Android(安卓)Light Sensor与Temperature
  5. Android(安卓)P sensor对某个APP方向做旋
  6. 2011.07.05(2)——— android PopupWindo
  7. android 加密 解密
  8. 运行时报错:Invoke-customs are only supp
  9. android recovery 和reboot
  10. Android中Binder类代码(android-5.0.2)