zoukankan      html  css  js  c++  java
  • 调用系统默认浏览器访问网址

    一、启动android默认浏览器

        Intent intent= new Intent();       
        intent.setAction("android.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");  
                    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“这个形式了


    有兴趣的可以去试试。

  • 相关阅读:
    [算法练习]ZigZag Conversion
    获取所有后缀DDE打开命令
    [算法练习]Add Two Numbers
    获取dll编译时生成的pdb文件的名称
    [转载]定位 C++/CLI 库的加载失败异常
    在C++/CLI环境下,千万不要把普通全局函数当标准C/C++的函数指针传递给native的库使用
    Mono集成中使用api获取当前mono 调用堆栈的方法
    简单对比了一下MonoXml与SystemXml在Unity下的表现
    C++从LPEXCEPTION_POINTERS获取调用堆栈
    遇到doxygen生成的chm文档目录如果有中文是乱码?
  • 原文地址:https://www.cnblogs.com/error404/p/2251065.html
Copyright © 2011-2022 走看看