android跳转浏览器打开
2012-12-19 23:48:31 cnzhuzi 阅读数 24606

 

			imageButtonBrowser
					.setOnClickListener(new ImageButton.OnClickListener() {

						public void onClick(View v) {
							Uri uri = Uri.parse(dataModel
									.getData(Constant.CODE_CONTENT));
							Intent intent = new Intent(Intent.ACTION_VIEW, uri);
							startActivity(intent);
						}
					});


 

2016-05-06 11:30:47 dodod2012 阅读数 1874
imageButtonBrowser
					.setOnClickListener(new ImageButton.OnClickListener() {

						public void onClick(View v) {
							Uri uri = Uri.parse("http://www.baidu.com");
							Intent intent = new Intent(Intent.ACTION_VIEW, uri);
							startActivity(intent);
						}
					});

2014-04-02 18:04:56 hutuanle3 阅读数 532
摘自:http://blog.csdn.net/liws2010/article/details/7452957
一、启动android默认浏览器

  Intent intent = new Intent();        
  intent.setAction("android.intent.action.VIEW");    //Intent.ACTION_VIEW
  Uri content_url = Uri.parse("http://www.cnblogs.com");   
  intent.setData(content_url);  
  startActivity(intent);

  这样子,android就可以调用起手机默认的浏览器访问。

  如果安装了多个浏览器

  

  二、指定相应的浏览器访问

  1、指定android自带的浏览器访问
  (“com.android.browser”:packagename;“com.android.browser.BrowserActivity”:启动主activity)

  Intent intent = new Intent();        
  intent.setAction("android.intent.action.VIEW");    
  Uri content_url = Uri.parse("http://www.cnblogs.com");   
  intent.setData(content_url);           
  intent.setClassName("com.android.browser","com.android.browser.BrowserActivity");

  //上边这一行 有的机子会报not found错误 可能机子root过;那就选择第一种方法吧;

  startActivity(intent);

  2、启动其他浏览器(当然该浏览器必须安装在机器上)
  只要修改以下相应的packagename 和 主启动activity即可调用其他浏览器

  intent.setClassName("com.android.browser","com.android.browser.BrowserActivity");

  uc浏览器":"com.uc.browser", "com.uc.browser.ActivityUpdate“
  opera:"com.opera.mini.android", "com.opera.mini.android.Browser"
  qq浏览器:"com.tencent.mtt", "com.tencent.mtt.MainActivity"

  三、打开本地html文件
  打开本地的html文件的时候,一定要指定某个浏览器,而不能采用方式一来浏览,具体示例代码如下

  Intent intent = new Intent();
  intent.setAction("android.intent.action.VIEW");   
  Uri content_url = Uri.parse("content://com.android.htmlfileprovider/sdcard/help.html");  
  intent.setData(content_url);          
  intent.setClassName("com.android.browser","com.android.browser.BrowserActivity");  
  startActivity(intent);

  关键点是调用了”content“这个filter。
  以前有在win32编程的朋友,可能会觉得用这种形式”file://sccard/help.html“是否可以,可以很肯定的跟你说,默认的浏览器设置是没有对”file“这个进行解析的,如果要让你的默认android浏览器有这个功能需要自己到android源码修改manifest.xml文件,然后自己编译浏览器代码生成相应的apk包来重新在机器上安装。

  大体的步骤如下:

  1、打开 packages/apps/Browser/AndroidManifest.xml文件把加到相应的<intent-filter>后面就可以了
  <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="file" />
              </intent-filter>

  2、重新编译打包,安装,这样子,新的浏览器就支持”file“这个形式了。

2019-01-10 11:10:23 Private___ 阅读数 718

项目有个需求是跳转应用宝网页下载更新自己的APP,开始不知道怎么写,不过通过一番查找还是理顺了!这篇文章以此来记录加深印象!

通过这篇文章知道了该怎么写的,这是链接: https://blog.csdn.net/yyanjun/article/details/79861666

废话不多说.一开始我是直接传递了一个我们APP在应用宝上的网址的,但是在webView中加载完之后点击网页上的按钮没有反应,不跳浏览器也不提示下载应用宝或者跳转应用宝,后来才发现如果为WebView重新设置了WebViewClient的话,WebView自身支持网页唤起的功能就失效了,还有就是针对下载需要设置一个setDownloadListener来监听获取到的链接是否是下载链接!如果重新设置了WebViewClient的话就需要在shouldOverrideUrlLoading(WebView view, String url)中做处理了.

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    if (!url.startsWith("http")) {
        try {
            // 以下固定写法,表示跳转到第三方应用
            final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
            startActivity(intent);
            mIsDownload = false;  //该字段是用于判断是否需要跳转浏览器下载
        } catch (Exception e) {
            // 防止没有安装的情况
            e.printStackTrace();
            return false;
        }
        return true;
    } else {
        return false;//返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器
    }
}

如果本地没有安装对应的APP的话会抛出 System.err: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW ....}这个Exception所以这里需要try{}catch(){}一下!

然后就是跳转浏览器下载apk了,首先我们需要给webView设置一个下载监听器,然后通过重写onDownloadStart()跳转到浏览器下载!

mWebView.setDownloadListener(new DownloadListener() {
            @Override
            public void onDownloadStart(String url, String userAgent, String contentDisposition,
                                        String mimetype, long contentLength) {
                if (mIsDownload) {
                    Intent intent = new Intent(Intent.ACTION_VIEW);
                    Uri uri = Uri.parse(url);
                    intent.addCategory(Intent.CATEGORY_BROWSABLE);
                    intent.setData(uri);
                    startActivity(intent);
                }
                mIsDownload = true;//重置为初始状态
            }
        });

好了大功告成,然后你就可以编译运行了去下载apk了!

写的不好 ,纯属个人的记录,加深印象,请谅解!!!

2014-04-02 18:04:00 hutuanle 阅读数 40
摘自:http://blog.csdn.net/liws2010/article/details/7452957
一、启动android默认浏览器

  Intent intent = new Intent();
  intent.setAction("android.intent.action.VIEW");//Intent.ACTION_VIEW
  Uri content_url = Uri.parse("http://www.cnblogs.com");
  intent.setData(content_url);
  startActivity(intent);

  这样子,android就可以调用起手机默认的浏览器访问。

  如果安装了多个浏览器

  

  二、指定相应的浏览器访问

  1、指定android自带的浏览器访问
  (“com.android.browser”:packagename;“com.android.browser.BrowserActivity”:启动主activity)

  Intent intent = new Intent();
  intent.setAction("android.intent.action.VIEW");
  Uri content_url = Uri.parse("http://www.cnblogs.com");
  intent.setData(content_url);
  intent.setClassName("com.android.browser","com.android.browser.BrowserActivity");

  //上边这一行 有的机子会报not found错误 可能机子root过;那就选择第一种方法吧;

  startActivity(intent);

  2、启动其他浏览器(当然该浏览器必须安装在机器上)
  只要修改以下相应的packagename 和 主启动activity即可调用其他浏览器

  intent.setClassName("com.android.browser","com.android.browser.BrowserActivity");

  uc浏览器":"com.uc.browser", "com.uc.browser.ActivityUpdate“
  opera:"com.opera.mini.android", "com.opera.mini.android.Browser"
  qq浏览器:"com.tencent.mtt", "com.tencent.mtt.MainActivity"

  三、打开本地html文件
  打开本地的html文件的时候,一定要指定某个浏览器,而不能采用方式一来浏览,具体示例代码如下

  Intent intent = new Intent();
  intent.setAction("android.intent.action.VIEW");
  Uri content_url = Uri.parse("content://com.android.htmlfileprovider/sdcard/help.html");
  intent.setData(content_url);
  intent.setClassName("com.android.browser","com.android.browser.BrowserActivity");
  startActivity(intent);

  关键点是调用了”content“这个filter。
  以前有在win32编程的朋友,可能会觉得用这种形式”file://sccard/help.html“是否可以,可以很肯定的跟你说,默认的浏览器设置是没有对”file“这个进行解析的,如果要让你的默认android浏览器有这个功能需要自己到android源码修改manifest.xml文件,然后自己编译浏览器代码生成相应的apk包来重新在机器上安装。

  大体的步骤如下:

  1、打开 packages/apps/Browser/AndroidManifest.xml文件把加到相应的<intent-filter>后面就可以了
  <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="file" />
   </intent-filter>

  2、重新编译打包,安装,这样子,新的浏览器就支持”file“这个形式了。

摘自:http://blog.csdn.net/liws2010/article/details/7452957一、启动android默认浏览器

  Intent intent = new Intent();
  intent.setAction("android.intent.action.VIEW");//Intent.ACTION_VIEW
  Uri content_url = Uri.parse("http://www.cnblogs.com");
  intent.setData(content_url);
  startActivity(intent);

  这样子,android就可以调用起手机默认的浏览器访问。

  如果安装了多个浏览器

  

  二、指定相应的浏览器访问

  1、指定android自带的浏览器访问
  (“com.android.browser”:packagename;“com.android.browser.BrowserActivity”:启动主activity)

  Intent intent = new Intent();
  intent.setAction("android.intent.action.VIEW");
  Uri content_url = Uri.parse("http://www.cnblogs.com");
  intent.setData(content_url);
  intent.setClassName("com.android.browser","com.android.browser.BrowserActivity");

  //上边这一行 有的机子会报not found错误 可能机子root过;那就选择第一种方法吧;

  startActivity(intent);

  2、启动其他浏览器(当然该浏览器必须安装在机器上)
  只要修改以下相应的packagename 和 主启动activity即可调用其他浏览器

  intent.setClassName("com.android.browser","com.android.browser.BrowserActivity");

  uc浏览器":"com.uc.browser", "com.uc.browser.ActivityUpdate“
  opera:"com.opera.mini.android", "com.opera.mini.android.Browser"
  qq浏览器:"com.tencent.mtt", "com.tencent.mtt.MainActivity"

  三、打开本地html文件
  打开本地的html文件的时候,一定要指定某个浏览器,而不能采用方式一来浏览,具体示例代码如下

  Intent intent = new Intent();
  intent.setAction("android.intent.action.VIEW");
  Uri content_url = Uri.parse("content://com.android.htmlfileprovider/sdcard/help.html");
  intent.setData(content_url);
  intent.setClassName("com.android.browser","com.android.browser.BrowserActivity");
  startActivity(intent);

  关键点是调用了”content“这个filter。
  以前有在win32编程的朋友,可能会觉得用这种形式”file://sccard/help.html“是否可以,可以很肯定的跟你说,默认的浏览器设置是没有对”file“这个进行解析的,如果要让你的默认android浏览器有这个功能需要自己到android源码修改manifest.xml文件,然后自己编译浏览器代码生成相应的apk包来重新在机器上安装。

  大体的步骤如下:

  1、打开 packages/apps/Browser/AndroidManifest.xml文件把加到相应的<intent-filter>后面就可以了
  <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="file" />
   </intent-filter>

  2、重新编译打包,安装,这样子,新的浏览器就支持”file“这个形式了。

没有更多推荐了,返回首页