procedure TForm1.btn3Click(Sender: TObject);
var
Intent:JIntent;
// Intent:TJIntent; 这两个看似一样,其实很容易解理错;
begin
// 方法1.
// 函数 StrToJURI('http://www.baidu.com/') 效果等同 TJnet_Uri.JavaClass.parse(StringToJString('网址'));
// Intent := TJIntent.JavaClass.init(StringToJString('类名'),TJnet_Uri.JavaClass.parse(StringToJString('网址')));
Intent := TJIntent.JavaClass.init(StringToJString('com.android.browser.Browser.Activity'),TJnet_Uri.JavaClass.parse(StringToJString('http://www.baidu.com/')));
Intent.setPackage(StringToJString('com.android.browser')); //设置包名;
Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
//以上3句要一起使用,否则会报错;
// Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW,TJnet_Uri.JavaClass.parse(StringToJString('http://www.baidu.com/')));
// Intent.setPackage(StringToJString('com.android.browser')); //设置包名;
// 这两句貌似不需要设置应用的类名就可以打开网址了;电脑太卡机了,没法一一测试;
// 上面3句的道理都是一样的。
// 方法2.
// Intent := TJIntent.JavaClass.init(StringToJString('com.android.browser'));
// Intent := TJIntent.Create;
// 以上3句效果都是一样的;
// Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); //如果没有这句的话,下面的 setData 语句就无法执行了;
// Intent.setData(StrToJURI('http://www.sogou.com/'));
// Intent.setFlags();
// Intent.addCategory(); 以上两句,感觉可有可无,没有它们,一样可以打开网页;
// Intent.putExtra(); 好像在两个活动界面中传递数参用的;参考资料:http://bbs.csdn.net/topics/370172520
// Intent.setComponent(); 还有这个,设置第3方应用的包名和类名,从而打开第3方应用;
// Intent.setDataAndType(StrToJURI('http://www.sogou.com/'),StringToJString('text/html')); //这句的第2个参数未知;
SharedActivityContext.startActivity(Intent); //这里最好try一下,有可能会报错。 比如说你的MIME类型是打开邮箱,但是你手机里面没装邮箱客户端,就会报错。
// SharedActivity.startActivity(Intent); //和上面一句效果一样的;
//总结:方法1.简单易用;方法2.灵活多变;
end;