Android WebView如何调用Chrome浏览器?

3

我做了一个网络应用程序,它在移动版chrome浏览器中运行良好,但在chromium浏览器中却出现了一些问题,所以有没有可能从应用程序中调用安卓chrome浏览器而不是应用程序中的webview呢?

我找不到任何方法来实现。 1:我不关心是否安装了chrome浏览器 2:我写了下面的webview来打开本地html文件,但我发现拖放功能存在一些js问题,在安卓chrome浏览器中却能正常工作。

以下是我的代码:

public class MainActivity extends Activity {
    private static final String URL = "file:///android_asset/index.html";
    private WebView mWebView;

    @SuppressLint("SetJavaScriptEnabled")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        getWindow().requestFeature(Window.FEATURE_PROGRESS);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mWebView = (WebView) findViewById(R.id.webview); 
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.setWebViewClient(new WebViewClient());
        mWebView.setWebChromeClient(new WebChromeClient());

        mWebView.getSettings().setRenderPriority(RenderPriority.HIGH);
        mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);


         final Activity activity = this;
         mWebView.setWebChromeClient(new WebChromeClient() {
           public void onProgressChanged(WebView view, int progress) {
             activity.setProgress(progress * 1000);
           }
         });

        mWebView.loadUrl(URL);
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig){
        super.onConfigurationChanged(newConfig);
    }

}

我编写了一段代码,使用Chrome Intent打开URL。我可以使用这种功能来将Chrome用作Web视图。
 protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
//         setContentView(R.layout.activity_main);
         String url = "http://www.google.com";
         String packageName = "com.android.chrome";

         Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
         browserIntent.setPackage(packageName);
         browserIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

         //Activity context = null;
         List<ResolveInfo> activitiesList = getPackageManager().queryIntentActivities(
                 browserIntent, -1);
         if(activitiesList.size() > 0) {
             // Found the browser on the device, launch it
             startActivity(browserIntent);
         } else {
             // The browser isn't installed, so we should prompt the user to get
             Intent playStoreIntent = new Intent(Intent.ACTION_VIEW);
             playStoreIntent.setData(Uri.parse("market://details?id="+packageName));
             playStoreIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
             startActivity(playStoreIntent);
         }


     }

你无法保证设备上安装了 Chrome,因为它不是默认浏览器。即使你有这个保证,你仍然在选择用户应该决定的事情。个人认为这是一个不好的想法。你可以在描述中添加“专为 Chrome 设计”或类似的内容。 - G_V
我不在意它,只要显示错误就可以了,因为大多数新平板电脑或安卓设备都已经安装了Chrome浏览器,我需要做些什么呢?请指导一下。 - mydeve
1个回答

3

如果我想要使用Android设备上的Chrome,我会更倾向于要求用户安装Chrome(如果他们没有安装的话)。 - mydeve
看看我的第二段代码,我试图使用Chrome Intent打开它,但用户会退出应用程序并打开Chrome浏览器,我希望与WebView相同的外观而不是打开浏览器。 - mydeve
@mour,你想要使用Chrome浏览器作为Webview吗?它是一个浏览器,不是Webview,不确定是否可行。如果你启动Chrome意图,它最终会打开Chrome应用程序,这是一个完整的浏览器。考虑使用Crosswalk,它可以为你提供一个Webview。 - ashoke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接