• WebView 联系(要么button)至 Activity 跳跃在几个方面


    第一 ,写一个 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






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

  • 相关阅读:
    项目经验总结
    聚合,组合之间的关系(aggregate,composite)
    做策划方案遇到问题
    给公司员工上的培训1——微观规范
    关于Oracle的简单导入导出
    SVN服务管理配置(原创,引用请注明出处)
    面向功能开发一点经验
    SourceMonitor使用手记
    泡泡、搜房、方正我该如何选择
    Excel 关联 合并 上海
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4821058.html
Copyright © 2020-2023  润新知