over 3 years ago

Firemonkey 在 Android 中要開啟 URL 的方法只能從呼叫 Android API 來實現,有點像在 Windows 上要用 ShellExecute 一樣。
網路上幾乎都是Delphi的文件,只能說C++Builder這種新的資訊實在很少,都要先看懂Delphi然後參考其他程式碼才能寫 C++Builder 的版本。

#ifdef __ANDROID__
#include <Androidapi.JNI.GraphicsContentViewText.hpp>
#include <Androidapi.Helpers.hpp>
#endif

#ifdef __ANDROID__
_di_JIntent Intent =
    TJIntent::JavaClass->init(TJIntent::JavaClass->ACTION_VIEW,
    TJnet_Uri::JavaClass->parse(StringToJString("http://toby.logdown.com")));
SharedActivity()->startActivity(Intent);
#endif

效果預覽:

就這樣囉XD!

別怪我沒有解釋原理,畢竟我也是 Android 新手 programmer 啊!看來還有很長一段路(望)。

附上 Delphi 的寫法:

uses
  Androidapi.JNI.JavaTypes, // StringToJString
  FMX.Helpers.Android, // SharedActivity
  Androidapi.JNI.GraphicsContentViewText; // TJIntent

var
  Intent: JIntent;
begin
  Intent := TJIntent.Create;
  Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
  Intent.setData(StrToJURI('http://toby.logdown.com'));
  SharedActivity.startActivity(Intent);
end;

P.S. 程式碼片段請自行放到 function 內。

Ref:

← 當自己嘔心瀝血的研究成果被人拿去利用 TWMSHackVersion 新楓之谷外掛版本查詢 →
 
comments powered by Disqus