第一 ,写一个 JavaScriptinterface 分类。内实现WebView至Activity 页面跳转

public class JavaScriptinterface {

	Activity mActivity;

	public JavaScriptinterface(Activity mActivity) {
this.mActivity = mActivity;
} /** 与js交互时用到的方法,在js里直接调用的 */
public void startActivity() {
Intent intent = new Intent();
intent.putExtra("fromWhich", "webViewUrl");
intent.putExtra("replyID", "replyID");
intent.setClass(mActivity, Testactvity.class);
mActivity.startActivity(intent);
}
}

而webView 实现 myWebView.addJavascriptInterface(new JavaScriptinterface(this), "android");  加入 这个类,表情为 android。在对应的网页中链接或button加入对应JS

function startActivity() {
android.startActivity();
}

JavaScriptinterface  的 startActivity  与 JS中的方法必须一致

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script type="text/javascript">
function startActivity() {
android.startActivity();
}
</script> </head>
<body>
<a href="#" id="a1" name="a1" onClick="startActivity()">button</a>
<input type="button" value="Say hello"
onClick="startActivity()"/> </body> </html>

完整Demo下载: http://download.csdn.net/download/jia635/8766869

方式二:

通过在 Activity 中 的  <data android:scheme="topicid" />  scheme 去实现。同一时候这样的方式可对外开发。即别的APP中遵循这个 scheme 规则,就可以打开注冊scheme 的Activity

<activity

            android:name="com.example.webviewtest.MainActivity"

            android:label="@string/app_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:scheme="topicid" />

            </intent-filter>

        </activity>

在WebView 的主要代码例如以下 <a href="topicid://aa.bb:80/test?

p=12&d=1" id="a1" name="a1"  >button</a>    超连接和scheme 一直 ,然后通过 Intent 传值能够通过  topicid://aa.bb:80/test?

p=12&d=1
字段去截取想要的属性值。 这样的方式 不能重写 WebViewClient  方法。不然点击就变为 像这个 topicid://aa.bb:80/test?

p=12&d=1 Url 跳转。

方式三:

通过重写 WebViewClient  。在 WebViewClient  中 有shouldOverrideUrlLoading(WebView view, String url)  的方法。能够在里面定义 Activity的跳转 ,通过 自己定义超链接的Url 格式去进行不同的操作,如:http://www.mofangge.com 为 网页跳转 , blogJump://mofangge.com  链接形式为 向Activity 跳转。通过 url  头部 进行 loadUrl 还是startActivity
的跳转推断。

Demo下载:http://download.csdn.net/detail/jia635/8767179

版权声明:本文博主原创文章,博客,未经同意不得转载。

WebView 联系(要么button)至 Activity 跳跃在几个方面的更多相关文章

  1. Android Studio同时监听多个Button实现activity跳转

    MainActivity.java: package com.example.test; import android.content.Intent; import android.os.Bundle ...

  2. 【iOS开发-22】navigationBar导航栏,navigationItem建立:获取导航栏中的基本文本和button以及各种跳跃

    (1)navigationBar导航栏可以被看作是self.navigationController一个属性导航控制器,它可以由点直接表示self.navigationController.navig ...

  3. WebView 的使用----android和html的交互

    一.主布局文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xml ...

  4. Android WebView 开发教程

    声明在先:必须在AndroidMainfest.xml 里面声明权限,否则在Java里面编写的所有WebView浏览网页的代码都无法正常使用 <uses-permission android:n ...

  5. Android控件之WebView

    如何在Android应用中打开Web网站呢?谷歌为我们提供了解决方案,现在就让我们一起看一下WebView控件吧. 为了方便总结,就以实现下面这个效果为主线,进行总结: 首先我们先看一下它的布局文件吧 ...

  6. HTML5学习总结-10 Android 控件WebView显示网页

    WebView可以使得网页轻松的内嵌到app里,还可以直接跟js相互调用. webview有两个方法:setWebChromeClient 和 setWebClient 1)setWebClient: ...

  7. Android WebView常见问题及解决方案汇总

    Android WebView常见问题解决方案汇总: 就目前而言,如何应对版本的频繁更新呢,又如何灵活多变地展示我们的界面呢,这又涉及到了web app与native app之间孰优孰劣的争论. 于是 ...

  8. android webview 底层实现的逻辑

    其实在不同版本上,webview底层是有所不同的. 先提供个地址给大家查:http://grepcode.com/file/repository.grepcode.com/java/ext/com.g ...

  9. Android之 -WebView实现离线缓存阅读

    前言 本篇博客要实现的是一个离线下载和离线阅读的功能,这是很多阅读类app都常见的一个功能,典型的应用就是网易新闻.什么是离线下载?其实这个概念是比较模糊,是离线之后下载呢,还是下载之后离线,但稍微有 ...

随机推荐

  1. jQuery异步提交form表单

    使用jquery.form.js官网现在地址表单插件来实现异步form表单提交. 先看看官方的介绍: /* Usage Note: ----------- Do not use both ajaxSu ...

  2. AM335x(TQ335x)学习笔记——Nand&amp;&amp;网卡驱动移植

    移植完毕声卡驱动之后本想再接再励,移植网卡驱动,但没想到的是TI维护的内核太健壮,移植网卡驱动跟之前移植按键驱动一样简单,Nand驱动也是如此,于是,本人将Nand和网卡放在同一篇文章中介绍.介绍之前 ...

  3. Linux有问必答:Linux上如何查看某个进程的线程

    原创:LCTT https://linux.cn/article-5633-1.html 译者: GOLinux本文地址:https://linux.cn/article-5633-1.html201 ...

  4. angular的学习参考材料

    原文地址:https://www.jianshu.com/p/b9db7bb3d4ec 目的 其实写这篇文章的主要目的是为了提供给那些刚刚入门angular或者有意学习angular的读者准备的. 我 ...

  5. Android OkHttp网络连接封装工具类

    package com.lidong.demo.utils; import android.os.Handler; import android.os.Looper; import com.googl ...

  6. RSA公钥、私钥、签名和验签

    1 RSA加密算法介绍 RSA又叫非对称加密算法,这类加密算法有一对秘钥,其中一个用来加密一个用来解密.这一对秘钥中你可以选择一个作为私钥(自己保存),另一个作为公钥(对外公开).用私钥加密的内容只能 ...

  7. NavMesh动态碰撞

    今天遇到一个问题,就是怎样处理一些动态的障碍物. NavMesh是能够躲避静态的障碍物.NavMeshObstacle的作用就是动态添加障碍. 可是有个问题,NavMeshObstacle是圆,连椭圆 ...

  8. android studio怎么添加.so文件?android studio加载so文件的方法

    android studio 中 添加.so 文件,Android Studio中添加.jar文件和.so文件无疑是一件很重要也是很头疼的问题! 1.在src/main中添加 jniLibs文件夹 , ...

  9. php自带加密解密函数

    php自带加密解密函数 一.总结 一句话总结:可逆和不可逆函数. 二.php自带加密解密函数 1.不可逆的加密函数为:md5().crypt() md5() 用来计算 MD5 哈稀.语法为:strin ...

  10. Linux删除非空目录

    Linux下如何删除非空目录   这个问题很basic,不过还是困扰了我一段时间.(这里主要讨论的是命令行模式下)我本来觉得应该使用命令 rmdir但是发现它无法删除非空的目录.后来发现了原来应该使用 ...