我有一个电子商务网站,并且已经使用WebView方法作为Android应用程序运行。我有android studio的基础知识但不深入。我关注的是当用户点击包含链接为“GCM unregister causing the application to crash”的应用中的任何产品时,想要从主要活动中打开第二个活动。这里“https://www.ecommerce.in/product/XXXXX”对所有产品都是通用的,但是当用户点击不同的产品时,“XXXXX”会更改为每个产品,而第二个活动应该使用另一个工具栏打开而不与主要活动工具栏相关,我的代码如下所示:
webView.setWebViewClient(new ourViewClient()
{
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
if(url.contains("https://www.ecommerce.in/product/XXXXX"))
{
Intent intent = new Intent(MainActivity.this, ProductsActivity.class);
startActivity(intent);
}
}
});
此代码根本不起作用。希望,我得到了一个解决方案,并提前感谢您的帮助。
答案 0 :(得分:0)
首先,您似乎试图过滤掉包含的链接:
if(url.contains("https://www.ecommerce.in/product/XXXXX"))
但是你的限制太多了。它确实在URL中寻找“XXXXX”。此外,这在安全性方面并没有太多帮助。 WebViews非常危险。我建议通过这个link查看一些基本建议。
无论如何,如果你只是想打开ProductActivity
,看起来你要做的就是更新测试,如下所示:
if (url.startsWith("https://www.ecommerce.in/product/"))
请注意,如果您需要该网址,则必须将其作为意图的一部分传递给ProductActivity
并在ProductActivity
中获取,但请务必先验证网址,然后再将其加载到确保坐在公共部分开始。
可能有人试图让你的活动做不应该做的事情。