gpt4 book ai didi

Android 和 Phonegap : Intent to launch an other Application

转载 作者:行者123 更新时间:2023-11-29 18:11:03 25 4
gpt4 key购买 nike

我发现这段代码可以启动浏览器,目的是:

Intent intent = new Intent (Intent.ACTION_VIEW, uri);
intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity");
intent.setDataAndType(uri, "text/html");
startActivity(intent);

有效。

但我没有使用 Android SDK。我正在使用 Phonegap 来制作我的应用程序。所以我正在寻找一种方法来启动这个 Intent 。我找到了这个插件: https://github.com/borismus/phonegap-plugins/tree/master/Android/WebIntent/

但它不允许“setClassName”、“setDataAndType”......

有什么想法吗?

最佳答案

如果你勾选CordovaWebViewClient Cordova 开箱即用地处理了几个 uri。

如果您不想使用插件,您可以覆盖它并添加对不同的自定义类型的 uris 的支持,这反过来会使用 uri 中指定的参数启动您选择的应用程序。

public class CustomWebViewClient extends
org.apache.cordova.CordovaWebViewClient {

public CustomWebViewClient(DroidGap ctx) {
super(ctx);
}

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {

//Check if provided uri is interesting for us
if (url.startsWith("customUri://")) {
//Get uri params, create intent and start the activity
return true;
}

return super.shouldOverrideUrlLoading(view, url);
}
}

上面的类应该在你的 android 项目的主要 Activity (扩展 DroidGap)中使用:

@Override
public void init() {
WebView webView = new WebView(this);
CustomWebViewClient webClient = new CustomWebViewClient(this);
CordovaChromeClient chromeClient = new CordovaChromeClient(this);
super.init(webView, webClient, chromeClient);
}

您提到的插件允许根据指定的 uri 启动 Intent 。因此,例如,如果您提供以 http://开头的 uri,android 会将其识别为网络资源并尝试启动可用的浏览器。因此,如果您只想启动浏览器,这对您来说应该足够了。

关于Android 和 Phonegap : Intent to launch an other Application,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10685220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com