Code Bye

关于内置浏览器的问题

 

程序内置了admob广告条(或其它广告条)
如果我想客户点击广告的时候 在我程序内置的浏览器打开网页
该怎么实现呢

谢谢!!!


50分
我提供一个思路,不过我也没试过,仅供参考

点击广告之后,他需要打开一个浏览器类型的应用,因此必然调用了 startActivity 这种东西, 所以,你可以重写你的 startActivity,在里面判断是否是广告点击,然后 获取对应链接数据,将使用内置浏览器打开,屏蔽他的 Intent


40分
1.创建一个Activity,包含WebView控件
2.在这个Activity的onCreate函数里增加以下代码:
String adUrl = "your ad url";
WebView webView = (WebView)findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient() {});
webView.loadUrl(adUrl);

3.在别的Activity里通过startActivity打开广告页面

更详细一些:
1.创建广告AdActivity类:
public class AdActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_ad);

		Intent intent = getIntent();
		String url = intent.getStringExtra("url");

		WebView webView = (WebView)findViewById(R.id.webView);
		webView.getSettings().setJavaScriptEnabled(true);
		webView.setWebViewClient(new WebViewClient() {});
		webView.loadUrl(url);
	}
}

对应布局文件activity_ad.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
    <WebView 
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

2.在AndroidMenifest.xml中注册AdActivity:

<application>
        ...
        <activity android:name=".AdActivity" />
</application>

3.在你的Activity中打开广告页面:

Intent intent = new Intent(this, AdActivity.class);
intent.putExtra("url", "http://ad.163.com/");	// 换成真实广告url
startActivity(intent);
还可以再改进一下:
public class AdActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);	// 节省空间不显示title
		setContentView(R.layout.activity_ad);

		Intent intent = getIntent();
		String url = intent.getStringExtra("url");

		WebView webView = (WebView)findViewById(R.id.webView);
		webView.getSettings().setJavaScriptEnabled(true);
		webView.setWebViewClient(new WebViewClient() {});
		webView.loadUrl(url);
	}

	public static void startAction(Activity activity, String url) {
		Intent i = new Intent(activity, AdActivity.class);
		i.putExtra("url", url);
		activity.startActivity(i);
	}
}

在别的Activity里打开广告:

AdActivity.startAction(this, "http://ad.16.com");
感谢两位的热心帮助!

我觉得比较难搞的是 svenwang说的:  3.在你的Activity中打开广告页面
因为打开广告页面的代码不是自己写的  admob封装好了

可能得像kifile说的:“重写你的 startActivity,在里面判断是否是广告点击,然后 获取对应链接数据,将使用内置浏览器打开,屏蔽他的 Intent”

百度了一下  没找到合适的代码
初学android,不好意思了,还想麻烦指点一下 怎么取得admob要打开的链接
谢谢!

如果他要通过 startActivity 打开网页,他必须在传输的 intent 里 setData()进去,这个 data 就是网址,你可以通过 getData()获取,然后进行处理

原理看懂了  可搜一晚上没找到具体要怎么写  看来是得慢慢学下基础知识先

可否给点代码或相关介绍的网址研究下  因为这个急用 

谢。。。


10分
6楼说的有理,svenwang说的根本没理解整个东西的关键点
谢谢各位

  结帖了


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于内置浏览器的问题