delphi xe7 android 指定浏览器打开网页
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;